web-dev-qa-db-ja.com

Oracleサインオンページに直接アクセスできないのはなぜですか?

このURL(下記)を自分のWebブラウザに貼り付けると... ChromeまたはIE
https://login.Oracle.com/mysso/signon.jsp
次のエラーが表示されます...

Error! Do not use bookmarked URL.
Please type the URL you are trying to reach directly into your browser.


ただし、このURLをブラウザに貼り付けた場合(下)
http://www.Oracle.com/us/corporate/contact/about-your-account-070507.html
次にSign In/Registerリンクをクリックすると、ブラウザが同じURL(上部)にアクセスしますが、エラーは表示されません。

私の質問です。サイトの「他の」URLに移動せずに、このURL( https://login.Oracle.com/mysso/signon.jsp )に直接アクセスするにはどうすればよいですか。最初?

17
Rose

私が最初に推測したのは、アクセスしようとしているページでは、正しく読み込まれる前にトークンが配置されている必要があるということです。このトークンをサーバーにすばやく登録し、次のリンクをたどってページに移動できるようです:

https://login.Oracle.com/pls/orasso/orasso.wwsso_app_admin.ls_login?Site2pstoreToken=v1.2~656BF073~512EDAC9FEA5F9140AE8A612213BCA280B4FF70D159812B6FDF2EB8D5CA98482EB385D4542873325FB366CCD4F17E21E1329A9531F844D92AC97A70A8287652D76277798A2DDF3D738EAB735E756B24FFDF89DC77C46F81AE712DB7D4F3A0CAF8EB1AE708C04FC58FEAC6D44A4DCCA81BD967FA1AD32ED298B5563DABC10443620E45DC539A7F6E5A5AB22A2F7541EF9B3339AFE4EBBC920989B7E7556B3B6DBF84FA7643382B2907A6183D06FDD9E1358A534083E4B73A5FB6BA840A981AE3A41BF878240DA4C48C74765E10DF30AC91057225CDC77C9241409FE189D251B2EAFF14E9776ADDC3C81541F53CFFC745A1A93DFAAD06B496B5630E1A725266B84DA43FEB216463D4C89A6164441B7CEFC600CC991B549A52BC45550156A365C699CF8A89250427BA9

そのトークンは他のものに役立つかもしれませんが。それ以来、それは実際には必要ないことがわかりました。このリンクが投稿されたヘッダーを確認することで、このHTMLフォームを作成して投稿を行うだけで、そのリンクをたどったときに何が起こったか(ほとんど)の結果を複製できると判断できました:

<html>
<head>
<title>Oracle SSO</title>
</head>
<form method=post action="https://login.Oracle.com/mysso/signon.jsp">
<input name=site2pstoretoken value="v1.2~656BF073~512EDAC9FEA5F9140AE8A612213BCA280B4FF70D159812B6FDF2EB8D5CA98482EB385D4542873325FB366CCD4F17E21E1329A9531F844D92AC97A70A8287652D76277798A2DDF3D738EAB735E756B24FFDF89DC77C46F81AE712DB7D4F3A0CAF8EB1AE708C04FC58FEAC6D44A4DCCA81BD967FA1AD32ED298B5563DABC10443620E45DC539A7F6E5A5AB22A2F7541EF9B3339AFE4EBBC920989B7E7556B3B6DBF84FA7643382B2907A6183D06FDD9E1358A534083E4B73A5FB6BA840A981AE3A41BF878240DA4C48C74765E10DF30AC91057225CDC77C9241409FE189D251B2EAFF14E9776ADDC3C81541F53CFFC745A1A93DFAAD06B496B5630E1A725266B84DA43FEB216463D4C89A6164441B7CEFC600CC991B549A52BC45550156A365C699CF8A89250427BA9" />
<input name=v value="v1.4" />
<input name=p_submit_url value="https://login.Oracle.com:443/sso/auth" />
<input name=p_cancel_url value="http://www.Oracle.com" />
<input name=p_error_code value="" />
<input name=ssousername value="" />
<input name=subscribername value="" />
<input name=authn_try_count value=0 />
<input name=contextType value=external />
<input name=username value=string />
<input name=contextValue value="/oam" />
<input name=password value=sercure_string />
<input name=challenge_url value="https://login.Oracle.com/mysso/signon.jsp" />
<input name=request_id value=-4782010454026398257 />
<input name=OAM_REQ value="VERSION_4~VeXlMi8vRU%2fhyhTAezfX%2fU92tvWZdduOvqF%2b%2fZcYUDnWrzu4V%2fcd4uyZvxIJbR7IxaYlaMA0wEkYKHSaDT5s7MPlYk3PRIlWNYxRTtYnK0kS2JQZrKDOL4CStRvsWAbuaMQJepMzUvRrxCEamyAH0sRT5caX3lCeI1iS7znsSTNIOXOl%2fgzOIoCD4JTPfO6WAbGiW3HdRBx5Y%2bDUrjsA%2fTPURYUU%2bXZ2XpPD%2fzWu11oXQV9C9lR36H8x97UkYcjyjtT%2b9vdHp8a0QwbAxG26N4eDokGnz5MRKaILo%2bsm2itImqCAlaTDWPBhTisfT89Av8Vv6FYAG%2bUDwj1BtTpshXinS0YHDwGAGYK7GB1VIeXraYIhR7V7C92H7dMGl8j%2fNof7JiN%2fjPEIRLjnX%2fgWNqNRzRaJe%2be7LVUrbOfGkvr2l%2fuAtYhY%2b9Q%2b2QvyHp%2bESS4Mnt4We6TdZ7Ap4zQbV3ZWh2f8vbBJYSw25R77Q2JatsjQQCJnAbKtwKwmauNHZgdo8yeeq7KZoltgciAZq9cm34CgQ3IburhracegH%2bFc9jV%2fnfu8BknpoIAjgDOdxtguYtoQpKitkwCGsQLPm9oaxE0n8wbJLWta2Vj7RLh5HmF7Za%2btda6t%2fW9MweMWiq66MvGZtDIa8pNycALi4SHtfp1SiVlhABeuVftbaoM%2fDStyjbPEUXEJBxLVYOiMODjov0GtsD5ZTzP9NH39ata8fZvHjyXUxTgZmhJQsZPH4r5ks2cz2tV%2bpw5Gb4U2Wvl81iXlVcSfiwGSp55qs9xSbJkQkBl9eagNO20RsKBI9W9KNTo3Boku5SMVOTt%2bsPPXwiiJlkblq2Jn7GLhDX8oFH36XsSlo%2bIPqWfCgaesTXyYnnsfK%2b2u8uByuRvDy6XCuj6O0ytLp8sKhFNAGZq1JVhIrh5%2bgxiLkZ%2bL2SVVV1HsP2TweR9WkFvytSgdx06NPrNvDJKFGvlV%2f8428uz5cCAUF5cr%2bX%2fiQ42EwsF3iZF1nQcHqcF44v7CBYYGuAW%2fDr9ojnrjj%2bT6dstOScY1vjLXIpgQs83wsbc1KfA26907E42yEgV5sPexC452gIPvcq4rLRr8Hm4hhWXnMxF1kX2zZnruo7yldr2VIT%2bUy11ZT4mcW7AgSipQaTkmbOgtv3nuvipoiGq9AeEzz%2fyUQurw2BSXcsP4HgMPO2cA5G93%2bBsT90gNEiQySyDwbJShjEVrCfry6a00zDzKXaddOAzinHOe7zHXJSbSoeqOw1XzS3bv8G7gcS3XNGa3yOUP%2fhHcNdpxqa%2bwbsEag9xKvCJRxr5Zr8GZK2GWu5XU8Kx9j6XiIQtsU1%2bl8p1AaP%2bCuKFgXz6gK2YePb6DPYmhyasplXtq569ytFdaD5NOgUN2CeRqjdxoKTOlyZWfr6bNZf1hI0sYUT8FlP0O%2fQ%2bi65j2zRBKPiosOsGNwnzbDOLcF1bZfJCmOL5u6cx8QJXe2VFQewIcC%2fvt8CMFDKwz82N%2bxtYkhMs%2fj2GmACcHeuTPBNnRjAO059S6mE3FMf0hFfLarLbGW6uLCiV%2bWKPq7f6FqIAYy73e%2fW5yd6RtajzaLaA14fd2AIx62WqTCLTbQTMwDBG2Y966dZvyQwzEmfNVWp317NB%2byvdM0HE0bPKlPHs5IVPGBSBPgSPc4ICqTMprlj%2fapVfQT5cDa2m%2fqyo6Z2Rhj19uyJwzSoX4Ib%2bMP3q90E6SqligrDKxFtCDIa2Kc3As9F8sDhU7%2bgvYXX%2bABP1GAGFtlDhq%2fA4vq%2bkD4%2bIFtq2hg1svtuPA7YwajG5z1ZZF1EsZqbKCZKCe8nJKe2GZDf3miXR1%2fAZgTnjmaks7vTHwkB9k48YNomqgSBsqPSOYRNVOIYrKPsKeRMf6xvKCpEl6Whst5E1BsT1zWl6WZPhcn%2f0ABsl%2b5AUtZ%2bvKqI%2fyymq1zOidcpn6Ao%2bO55wSAj%2botPbUr1UyrQbMFlV7jWJPYOs%2bicDSRf1DZlC1w5rsIUz7HRAjVcc4yyRnTwOeGXnoUTuzoHJ5PhmxpBIbr0otlfiDMHY6cm960PvYDAtWUSgOnwA4%2bPtY4YtmBSZuvSrk3W7L%2f1%2fTaYGb0uccJx1sfB6qwD1Isk80NxnKWCCftv0W0AE3zf9xpei1SWNp%2fMJH1yfpVFM%3d" />
<input name=locale value=en_US />
<input type="submit" value="Submit">
</form>
</html>

ご覧のとおり、ここではリファラーは重要ではありません。重要なのは、ログインフォームにセットアップフォームに含まれている情報が提供されることだけです。メインサイト以外の場所でこれらのトークンを取得する場所はまだわかりません。自分でそれを理解する必要があります。

これを少し試してみたところ、上記のフォームの重要な値はrequest_idだけであることがわかりました。次の、はるかに単純なバージョンを使用できます。

<html>
<head>
<title>Oracle SSO</title>
</head>
<form method=post action="https://login.Oracle.com/mysso/signon.jsp">
<input name=request_id value=-4782010454026398257 />
<input type="submit" value="Submit">
</form>
</html>

さらに、フォームはこの値をGETまたはPOSTとして受け入れます。つまり、次の場所でフォームにアクセスできます。 https://login.Oracle.com/mysso/signon.jsp?request_id=-4782010454026398257

これは物事をはるかに簡単にします。ここで、新しいrequest_idを保持する必要があるかどうか、またはそれが永続するかどうかを確認する必要があります。どのrequest_idを使用してもかまいません。そのページにはアカウントがないので(これをテストできません)、request_idに任意の番号を入力すると、フォームが表示されます。次のように作成した番号でログインしてみてください。

https://login.Oracle.com/mysso/signon.jsp?request_id=007

または、次のようにIDをまったく使用しません。

https://login.Oracle.com/mysso/signon.jsp?request_id=

これでフォームが表示されるという事実を超えて、これを実際にテストしたことはありません。コメントを読んで、他の誰かが持っているかどうかを確認してください。

21
krowe2

Referer ヘッダーに基づいて、奇妙な黒魔術を行っています。ヘッダーには、前のページのURLが含まれています。

基本的に、リファラーが存在し、別のページに設定されている場合、すべて問題ありません。それ以外の場合、エラーがスローされます。彼らだけが彼らがこれをしている理由を説明することができます。

これはセキュリティを強化する試みの可能性がありますが、私にとってこれは セキュリティシアター のように見えます。本物のURLをブックマークすることは、ドメインを入力してミスタイプするよりも安全であり、攻撃者がドメインを登録できるようにするためです。誤って入力したドメイン(oralcle.comなど)とフィッシングページを表示します。

6
user256743

これは「シングルサインオン」システムです。ドメインlogin.Oracle.comは認証のみを許可し、それ自体のコンテンツはありません。したがって、ログインが必要な別のドメインから来ていない場合は、コンテンツがまったく表示されません。

そのドメインにはコンテンツがなく、お気に入りにはアクセスしようとした情報が含まれていないため、お気に入りが間違ったアドレスを指していることを警告するだけです。

ログイン後、セッション期間中は、再度ログインしなくても、認​​証済みユーザーとしてOracleの任意のサブドメインにアクセスできます。

通常はGoogleで作業するようなものです。accounts.google.comでログインする必要がありますが、通常は他のドメイン(www.google.commail.google.comなど)を使用してアクセスします

4
NuTTyX

これは、複数のシステムで使用される可能性のある集中IDプロバイダーである可能性があります。 Oracle Application Server SSOを使用しているようです。私はその特定の製品に精通していませんが、そのようなシステムは次のようになります。

  1. ユーザーがターゲットサイトにアクセスします。

  2. ターゲットサイトは、ログインサーバーにユーザーをリダイレクトします。リダイレクトには、元のリクエストに関する詳細を提供するトークンが含まれています。 (refererヘッダーを使用することもできますが、最初の要求がGET要求ではなくPOST)である場合の処理​​が難しくなります。)

  3. ログインサーバーはトークンを受け入れ、ユーザーがまだサインインしていないことを認識して、ログインするように求めます。

  4. ユーザーはログインサーバーにログインします。

  5. ログインサーバーはユーザーを元のリクエストされたリソースに戻し、元のリクエストとユーザーのIDに関する情報をアプリケーションに返します。

  6. アプリケーションは、IDプロバイダーによって提供されるIDアサーションを認識して信頼するため、元の要求を処理します。

このシステムの利点の1つは、アイデンティティシステムがSSOサービスを消費するアプリケーションとあまり結合していないことです。 IDプロバイダーはユーザーの認証を担当するため、個々のアプリケーションはユーザー認証のメカニズムに関係する必要はありません。

組織は、各アプリケーションを新しい方法用に再構成する必要なく、認証プロセスに大きな変更を加えることもできます。これは、RSAキーフォブを使用したパスワードベースのログインの強化、Windows統合認証への切り替え、レガシーLDAPシステムからActive Directoryへのユーザーの移動などを意味します。

複数のアプリケーションが同じIDプロバイダーを使用する場合、シングルサインオンの利点も得られます。つまり、あるアプリケーションにログインすると、別の統合アプリケーションにアクセスするプロセスは次のようになります。

  1. ユーザーがターゲットサイトにアクセスします。

  2. ターゲットサイトは、ログインサーバーにユーザーをリダイレクトします。リダイレクトには、元のリクエストに関する詳細を提供するトークンが含まれています。 (refererヘッダーを使用することもできますが、最初の要求がGET要求ではなくPOST)である場合の処理​​が難しくなります。)

  3. ログインサーバーは、既存のセッションからユーザーを認識します。ユーザーを元の要求されたリソースに戻し、元の要求とユーザーのIDに関する情報をアプリケーションに返します。

  4. アプリケーションは、IDプロバイダーによって提供されるIDアサーションを認識して信頼するため、元の要求を処理します。

ユーザーはすでにIDプロバイダーにログインしているため、ユーザーが経験することはいくつかの簡単なリダイレクトだけであることに注意してください。

3
GargantuChet