Azure ADとOracle Access Manager for Oracle E-Business Suiteの間のSSOの構成について

次に、Azure ADに新しいフェデレーテッド・サービス・プロバイダを登録し、Oracle Access Managerに新しいアイデンティティ・プロバイダ(E-Business Suite)を登録し、Oracle Access Managerを使用してAzure ADおよびE-Business SuiteとのフェデレーテッドSSO認証を実現するために必要な構成変更を加えます。

Azure ADとE-Business Suiteのフェデレーション・フローの理解

構成を続行する前に、Azure ADおよびE-Business Suiteフェデレーション・フローを理解する必要があります。

ebiz-federation-flow.pngの説明が続きます
図ebiz-federation-flow.pngの説明

このシナリオでは、ユーザーはAzure ADに格納されている資格証明を使用してE-Business Suiteにアクセスします。このアクセスは、Azure ADがアイデンティティ・プロバイダ(IDP)で、E-Business Suiteがサービス・プロバイダ(SP)であるSAML 2.0プロトコルを使用したフェデレーテッド認証設定によって実現されます。Oracle Access ManagerはSSO用のE-Business Suiteの前にデプロイされるため、E-Business Suiteにフェデレーション機能を提供するコンポーネントでもあります。この項では、Azure ADとOracle Access Managerの間でアイデンティティ・フェデレーションを実装するために必要なステップを示します。

主に、E-Business Suiteで保護されたエンドポイントへのアクセス時に開始されるフェデレーション・フローに関心があることに注意してください。SAMLプロトコルの用語では、これはサービス・プロバイダ開始(SP開始)フローと呼ばれ、図2に示されています。このフローでは、Oracle Access Manager (OAM)サーバーは、E-Business Suiteで保護されたリソースへのアクセスを検出し、認証リクエスト(SAMLRequest)を作成し、ブラウザを認証のためにAzure ADにリダイレクトします。Azure ADは、資格証明についてユーザーにチャレンジし、資格証明を検証し、受信した認証リクエストに対するレスポンスとしてSAMLResponseを作成し、それをOracle Access Managerに送信します。次に、Oracle Access Managerはアサーションを検証し、アサーションに埋め込まれたユーザー識別情報をアサートして、保護されたリソースへのアクセス権を付与します。

この項で説明する構成は、アイデンティティ・プロバイダによって開始される(IdPによって開始される)フローも考慮します。このフローでは、リクエストは最初にAzure AD SAMLサイト間URLに対して行われ、リクエストはOracle Access Managerサーバーに未承諾のSAMLResponseを送信します。

SPが開始するシングル・ログアウト(ログアウト・フローがE-Business Suiteによって開始される)も、提示された構成でサポートされます。この文書が最初に公開された時点では、IDPによって開始されるシングル・ログアウト(Azureポータルによってログアウト・フローが開始される)はサポートされていません。詳細は、このドキュメントの最後にある「既知の問題」の項を参照してください。

Azure ADをアイデンティティ・プロバイダとして構成

まず、Azure ADをアイデンティティ・プロバイダとして構成する必要があります。

  1. ドメイン管理者としてAzureポータルにサインインします
  2. 左端のナビゲーション・ペインで、「Azure Active Directory」をクリックします。
  3. 「Azure Active Directory」ペインで、「エンタープライズ アプリケーション」をクリックします。
  4. 「New Application」をクリックします。
  5. 「ギャラリから追加」セクションで、検索ボックスにOracle Access Manager for EBSと入力し、結果のアプリケーションからOracle Access Manager for EBSを選択して、「追加」をクリックします。
  6. Oracle Access Managerをアプリケーションのサービス・プロバイダとして構成するには、「シングル・サインオン」をクリックします。
  7. シングル・サインオン方法として「SAML」を選択します。

    「Set up Single Sign-On with SAML」ページが表示されます。ここでは、次のステップで統合の詳細を入力します。

    入力する必要がある値の一部は、Oracle Access ManagerのSAMLメタデータから取得されます。メタデータを取得するには、http(s)://<oam_hostname>:<port>/oamfed/sp/metadataに移動します。出力はXMLデータで、次のステップで必要なデータがあります。

  8. 「SAMLを使用したシングル・サインオンの設定」ページの「基本的なSAML構成」領域で、「識別子(エンティティID)」「返信URL (アサーション・コンシューマService URL)」および「ログアウトURL」の値を指定します。
    • 識別子(エンティティID)は、SAMLメタデータのEntityDescriptor要素のentityID属性に対応します。実行時に、Azure ADはSAMLアサーションのオーディエンス要素に値を追加し、アサーションの予想される宛先であるオーディエンスを示します。Oracle Access Managerメタデータで次の値を検索し、その値を入力します。
      <md:EntityDescriptor
      …
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       ID="id-4TfauRP-ZeWyweEXkrqcBA0w0nRhe64hOPfnY2YR"
       cacheDuration="P30DT0H0M0S"
       entityID="http://myoamserver.mycompany.com:14100/oam/fed"
       validUntil="2029-03-19T21:13:40Z">
      …
    • 返信URL (アサーション・コンシューマService URL)は、SAMLメタデータのAssertionConsumerService要素のLocation属性に対応しています。次の例に示すように、HTTP_POSTバインディングに関連するLocation属性を選択してください。返信URLは、フェデレーション・パートナのSAMLサービス・エンドポイントで、アサーションを処理することが想定されています。
      <md:AssertionConsumerService
      Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
      Location="https://myoamserver.mycompany.com/oam/server/fed/sp/sso"
      index="1"/>
    • ログアウトURLは、Oracle Access ManagerのSAML logoutエンドポイントに対応します。この値は、Oracle Access ManagerのSAMLメタデータのSingleLogoutService要素のLocation属性に対応しています。この値は、IdPによって開始されるログアウト・フローでのみ使用されます。
      <md:SingleLogoutService
      Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
      Location="https://myoamserver.mycompany.com/oamfed/sp/samlv20"
      ResponseLocation="https://myoamserver.mycompany.com/oamfed/sp/samlv20"
      />
      

    ノート:

    サインオンURLおよびリレー状態プロパティは、このシナリオに関連しないため、スキップできます。
  9. 「ユーザー属性および要求」領域で、SAMLアサーションに挿入してOracle Access Managerに送信するユーザー属性を構成します。このシナリオでは、なんらかの形式の一意のユーザー識別情報を送信できます。
    userprincipalnameはAzure AD内の一意の属性であるため、名前識別子 value: user.userprincipalname [nameid-format:emailAddress]のデフォルトとして値をそのままにします。このような構成は、Oracle Access Managerのアイデンティティ・ストア(LDAPサーバー・ストア)のユーザー・エントリにuserprincipalname値をインポートする必要があることを意味します。
  10. .「SAML署名証明書」領域で、フェデレーションMetadata XMLの横にある「ダウンロード」リンクをクリックし、ファイルをコンピュータに保存します。後でOracle Access Managerをサービス・プロバイダとして構成するときに使用します。

アプリケーションへのユーザーの割当て

次に、アプリケーションをユーザーに割り当てます。Azure ADがアプリケーションから認証リクエストを受信した後、アプリケーションに割り当てるユーザーのみがログインできます。

  1. 前のセクションで作成したAzure ADアプリケーションから、「ユーザーとグループ」をクリックし、「ユーザーの追加」をクリックします。
  2. 「ユーザーとグループ: 選択なし」オプションを選択し、次のステップを実行します。
    1. 「メンバーの選択または外部ユーザーの招待」検索ボックスにユーザーの名前を入力し、[Enter]を押します。
    2. ユーザーを選択し、「選択」をクリックしてユーザーを追加します。
    3. 「割当て」をクリックします。
    4. ユーザーまたはグループを追加するには、これらのステップを繰り返します。
  3. SSO構成専用のこのエンタープライズ・アプリケーションをユーザーが表示できないようにするには、「プロパティ」をクリックし、「ユーザーに表示」の値を「いいえ」に変更して、「保存」をクリックします。

Azure AD用の新しいアイデンティティ・プロバイダの作成

次に、Azure ADの新しいアイデンティティ・プロバイダを作成します。このステップは、Oracle Access Managerフェデレーション・サービスが有効になっていることを前提としています。

  1. 管理者としてOracle Access Managerコンソールにサインインします。
  2. コンソールの上部にある「フェデレーション」タブをクリックします。
  3. 「起動パッド」タブの「フェデレーション」領域で、「サービス・プロバイダ管理」をクリックします。
  4. 「サービス・プロバイダ管理」タブで、「アイデンティティ・プロバイダ・パートナの作成」をクリックします。
  5. 「一般」領域で、「アイデンティティ・プロバイダ・パートナ」の名前を入力し、「パートナの有効化」「デフォルト・アイデンティティ・プロバイダ・パートナ」の両方を選択します。保存する前に次のステップに進みます。
  6. .「サービス情報」領域で、次のようにします。
    1. プロトコルとしてSAML2.0を選択します。
    2. 「プロバイダ・メタデータからロード」を選択します。
    3. 「参照」(Windowsの場合)または「ファイルの選択」(Macの場合)をクリックし、以前に保存したAzure AD SAMLメタデータ・ファイルを選択します。
    4. 保存する前に次のステップに進みます。
  7. 「マッピング・オプション」領域で、次の手順を実行します。
    1. E-Business SuiteユーザーにチェックされるOracle Access Manager LDAPアイデンティティ・ストアとして使用される「ユーザー・アイデンティティ・ストア」オプションを選択します。通常、これはOracle Access Managerアイデンティティ・ストアとしてすでに構成されています。
    2. 「ユーザー検索ベースDN」は空白のままにします。検索ベースは、アイデンティティ・ストア構成から自動的に選択されます。
    3. 「アサーションName IDのユーザーIDストアへのマップ」属性を選択し、テキスト・ボックスにmailと入力します。

    ノート:

    この構成では、Azure ADとOracle Access Managerの間のユーザー・マッピングを定義します。Oracle Access Managerは、受信SAMLアサーションのNameID要素の値を取得し、構成済アイデンティティ・ストア内のすべてのユーザー・エントリでその値をmail属性に対して検索しようとします。したがって、Azure ADユーザー・プリンシパル名(前述のAzure AD構成内)は、Oracle Access Managerのアイデンティティ・ストアのmail属性と同期している必要があります。
  8. 「保存」をクリックして、アイデンティティ・プロバイダ・パートナを保存します。
  9. パートナの保存後、タブの下部にある「詳細」領域に戻ります。次のように構成されていることを確認します。
    • Enable global logout」が選択されています。
    • 「HTTP POST SSO」レスポンス・バインディングが選択されています。
      これは、Oracle Access Managerが認証リクエストで送信する指示で、SAMLアサーションの送信方法をAzure ADに通知します。Oracle Access Managerが送信する認証リクエストを調べると、次の例のように表示されます。例のAuthnRequest要素の太字ProtocolBinding属性に注意してください。
      <?xml version="1.0"?>
      <samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
      xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"
      xmlns:enc="http://www.w3.org/2001/04/xmlenc#"
      xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
      xmlns:x500="urn:oasis:names:tc:SAML:2.0:profiles:attribute:X500"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      Destination="https://login.microsoftonline.com/4e39517e-7ef9-45a7-
      9751-6ef6f2d43429/saml2" ID="id-y5nmx61xB8QWXtDmYWcH7rPYs5zXtV-fcKRyyM9" IssueInstant="2019-04-23T17:01:25Z"
      ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
      Version="2.0">
      <saml:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameidformat:entity">http://myoamserver.mycompany.com:14100/oam/fed</saml:Is
      suer>
      <dsig:Signature>
      <dsig:SignedInfo>
      <dsig:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xmlexc-c14n#"/>
      <dsig:SignatureMethod
      Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
      <dsig:Reference URI="#id-y5nmx61xB8QWXtDmYWcH7rPYs5zXtV-fcKRy-yM9">
      <dsig:Transforms>
      <dsig:Transform
      Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
      <dsig:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
      </dsig:Transforms>
      <dsig:DigestMethod
      Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
      <dsig:DigestValue>pa00UWdqfywm4Qb59HioA6BhD18=</dsig:DigestValue>
      </dsig:Reference>
      </dsig:SignedInfo>
      <dsig:SignatureValue>X4eZRyFD6sznA0g3BJebU2c6ftunG2UvwbMptO+10wFky0aAL
      nnr0Na+5fF83U4Ut99OvAIZ41K3YMNaR4A8zr37SSlBrb72X7CTtxjh2mAphWDRPmkJx4v
      S0HACzZh0MHimdwq+qVXuFRbSLBE+9XNSGWJzGAh//WqGBlNrKnw=</dsig:SignatureV
      alue>
      </dsig:Signature>
      </samlp:AuthnRequest>
    • 「HTTP Basic Authenticationの有効化」(SSOアーティファクト・バインド)が選択されていません。

      この設定では、Azure ADにHTTP POSTリクエストを介してアサーションを送信するように求められます。このようなリクエストを受信すると、アイデンティティ・プロバイダは通常、アサーションを非表示フォーム要素として、サービス・プロバイダのアサーション・コンシューマ・サービス(ACS)に自動的にポストされるHTMLフォームを作成します。

  10. 「一般」領域で、「認証スキームおよびモジュールの作成」ボタンをクリックします。
    認証スキームおよびモジュールは、パートナ名を使用して作成されます。残りの構成は、認証にAzure AD資格証明を必要とするE-Business Suiteリソースに認証スキームをアタッチすることのみで、次の項で説明します。
  11. 作成した認証モジュールは、次のステップに従って確認できます。
    1. コンソール上部にある「Application Security」タブをクリックします。
    2. 「プラグイン」で、「認証モジュール」を選択し、「検索」をクリックしてフェデレーション・モジュールを見つけます。
    3. モジュールを選択し、「ステップ」タブをクリックします。
    4. FedSSOIdPプロパティの値は、アイデンティティ・プロバイダ・パートナであることに注意してください

E-Business Suiteリソースの認証スキームへの関連付け

最後の構成ステップでは、E-Business Suiteリソースを認証スキームに関連付けます。Oracle Access Managerコンソールに管理者としてログインしているときに、次のステップを実行します。

  1. コンソール最上部にある「アプリケーション・セキュリティ」をクリックします。
  2. 「アクセス・マネージャ」で、「アプリケーション・ドメイン」を選択し、「検索」をクリックして、E-Business Suite WebGateを登録する統合のE-Business Suiteスクリプトの実行中に作成されたアプリケーション・ドメインを選択します。
  3. 「認証ポリシー」タブをクリックしてから、保護されたリソース・ポリシーをクリックします。
    新しいフェデレーション認証スキームで以前に作成した認証スキームを変更して、認証スキームを変更します。Oracle Access Managerでは、保護されたリソースをアイデンティティ・プロバイダに関連付けます。
  4. 「適用」をクリックして変更を保存します。