29 Oracle Access ManagementのIdentity Federationの概要
Oracle Access Managementの11gリリース2 (11.1.2.3)では、スタンドアロンのOracle Identity Federation製品とOracle Access Managerとの統合が実現しています。この章では、統合されたIdentity Federationについて紹介します。内容は次のとおりです。
29.1 Identity FederationとAccess Managerとの統合
Oracle Identity Managementフレームワークは、クロスドメインのシングル・サインオンで次の2つの方法をサポートしています。それぞれ独立しているため、これらの方法を組み合せることはできません。
設定に基づいて、次のいずれかを実行します。
- 11gリリース2 (11.1.2)から、Oracle Access Management Access Managerサーバー(OAMサーバー)は、Oracle Access Management Identity Federationサーバーと統合されています。Identity Federationサーバーの構成はすべてOracle Access Managementコンソールを使用して実行します。
- 以前の各リリースのOracle Identity Federation (11.1.1)とOracle Access Managerをデプロイして、フェデレーション機能を提供することもできます。この統合用に両方のサーバーを構成し、管理する必要があります。この方法は11gリリース1 (11.1.1)の時点ですでに存在しており、引き続き使用できます。
ノート:
このマニュアルのトピックは、フェデレーションとその機能に関するある程度の知識があることを前提としています。背景と概念については、Oracle Fusion Middleware Oracle Identity Federation管理者ガイドのOracle Identity Federationの概要に関する項を参照してください。12cでは、Oracle Identity Federation機能はAccess Managerと統合されているため、この最新のドキュメントではOracle Identity Federation機能についてのみ説明します。
Access Managerに統合された新しいIdentity Federation 12cサーバーの利点は次のとおりです。
-
各サーバーへの個別のインストールや管理が不要になります。
-
インストール後のフェデレーション機能の構成が簡略化されます(特に、Oracle Access Managementコンソールからそれらの機能にアクセスする場合)。
-
2つのサービスを連携させるスケーラビリティが向上します。
-
診断およびトラブルシューティングの機能が強化されます。
29.2 Oracle Access ManagementでのIdentity Federationのデプロイ
機能上、Identity Federationサービスを使用した(ユーザーがWebブラウザを使用して保護されたリソースにログインする場合)コンポーネントには、Access Managerサーバー、Oracle WebLogicサーバー・ホストおよびデータ・ストアがあります。
Access Managerサーバー
Access Managerサーバーには、フェデレーテッド・コンテキストで管理サービスにアクセスする際に必要なコンポーネントがすべて含まれています。コンポーネントは次のとおりです。
-
資格証明コレクタ
-
フェデレーション認証プラグイン
-
アサーションを生成および処理するIdentity Federationエンジン
-
フェデレーション・データ・キャッシュ
Oracle WebLogic Server
Oracle WebLogic Serverは、次のような主要なインフラストラクチャ・サービスをホストし、提供します。
-
Oracle Entitlement Serverと相互作用する認可エンジン
-
トラスト・サークルの詳細や他の構成を含むフェデレーション・データ
データ・ストア
認証タスクに必要なアイデンティティ・データは、アイデンティティ・ストアなどのデータ・ストアで保持されます。Identity Federationは、Access Manager共通ユーザー・ストアをサポートし、複数のアイデンティティ・ストアのサポートを提供します。永続アカウント・リンク用フェデレーション・データはデータベースに格納できます。
ノート:
コールは通常のHTTPコールです。
29.3 Identity Federationの動作についての理解
フェデレーションは任意の数のアイデンティティ・プロバイダとサービス・プロバイダで構成できます。フェデレーテッド・ネットワークのIdentity Federationインスタンスは、アイデンティティ・プロバイダまたはサービス・プロバイダ、あるいはその両方として機能します。
一般的なフェデレーテッド・ネットワーク・トポロジの1つに、ハブ・アンド・スポーク・モデルと呼ばれるものがあります。このトポロジでは、1つのサービス・プロバイダが複数のアイデンティティ・プロバイダから認証を受け入れるか、1つのアイデンティティ・プロバイダが複数のサービス・プロバイダに対して認証を実施します。
-
サービス・プロバイダ(SP)は、ニュース・ポータル、財務リポジトリ、小売り窓口などのWebベース・サービスを提供する民間または非営利の組織です。フェデレーテッド・ネットワークのSPとして構成されている場合、ユーザーがOracle Access Managerなどの認証エンジンによって保護されているリソースにアクセスしようとすると、Identity Federationはグローバル認証のためにユーザーをIdPにリダイレクトします。IdPは資格証明を取得し、ユーザーを認証し、ユーザーをIdentity Federationサーバー・インスタンスにリダイレクトして戻します。ここで、IdPからアサートされているアイデンティティが取得され、認証済ユーザーは、保護されているリソースへのアクセスを提供する認証エンジンにリダイレクトされます。
-
アイデンティティ・プロバイダ(IdP)は、アイデンティティ・プロファイルを格納するサービス・プロバイダです。(アイデンティティ・プロバイダは、前述のサービスと、アイデンティティ・プロファイル・ストレージ関連サービス以外のサービスも提供する場合があります。)フェデレーテッド・ネットワークでIdPとして構成されている場合、ユーザーが保護されているリソースにアクセスしようとすると、リソースのSPがユーザーをIdentity Federationサーバー・インスタンスにリダイレクトします。ここでは、Access Manager認証エンジンを使用して、資格証明が取得され、ユーザーが認証されます。認証が成功すると、Identity FederationインスタンスがユーザーのアイデンティティをリソースのSPに対してアサートできます。SPは、ユーザーを認証し、保護されているリソースへのアクセスを提供します。
統合されたIdentity Federationサーバーは、IdPとしてでもSPとしてでも機能できます。これらのプロバイダ・モードのいずれかで機能するようにIdentity Federationを構成し、フェデレーション内のリモート・パートナと通信する方法の詳細は、「Identity Federationパートナの管理」を参照してください。
29.4 Identity Federationの使用
SPが開始するSSOでは、SPがIdPに認証リクエストを送信すると、フェデレーテッドSSOプロセスが開始されます。IdPが開始するSSOでは、IdPがSPに非送信請求アサーション・レスポンスを送信します(SPからの認証リクエストがない場合)。両方のモードでサポートされているランタイム・フローには、SSO、ログアウト(リモート・フェデレーション・パートナまたはAccess Manager保護アプリケーションから開始)および属性問合せが含まれます。
この節では、以下のトピックについて説明します。
29.4.1 SSOのアーカイブ
Identity Federation (IdPとして機能)がSPとフェデレーテッドSSOを実行している場合、Access Managerサーバーはユーザーを認証するか、認証済ユーザーが非アクティブを理由にしてチャレンジを受けることがないようにします。
また、Access Managerサーバーは、SPによって指定されている、要求されたフェデレーション認証方式が、認証レベルに基づいたチャレンジを必要としていないことを確認します。このことは、認証方式に対する認証スキーム・マッピングにより判断されます。(SPがフェデレーション認証方式を指定していない場合、IdPは、defaultschemeidプロパティでSPパートナに対して指定されている認証方式を使用します。)詳細は、「フェデレーションSSOの開始」を参照してください。
29.4.2 ログアウト
Identity Federationにより、ログアウト操作は認証操作から分離されています。ログアウトはユーザー(Access Managerサーバー)またはフェデレーション内のパートナによって開始できます。
-
Access Managerログアウト・サービスにアクセスしているユーザーによって開始された場合、Access ManagerがそのユーザーのAccess Managerセッションを中断し、ログアウト・ページを表示し、ここから、様々なWebゲート・エージェントにユーザーのCookieを削除するよう指示が出ます。そして、Access Managerは、ユーザーをIdentity Federationログアウト・サービスにリダイレクトし、このサービスが、ログアウト・リクエスト・メッセージとともにユーザーをHTTPリダイレクトまたはHTTP POST経由でリダイレクトするか、ログアウト・リクエスト・メッセージをSOAP経由で直接送信することにより、このセッションに関与する各パートナへの通知を行います。Identity FederationはOIFセッションを強制終了し、定義された戻りURLにユーザーをリダイレクトします。
-
フェデレーション内のパートナからWebサイト上のユーザーによって開始された場合、パートナがユーザーをIdentity Federationサーバーにリダイレクトし、ここで、ユーザー・セッションがログアウトとしてマークされます。次に、Identity FederationがユーザーをAccess Managerサーバーにリダイレクトし、ここでユーザーのAccess Managerセッションが強制終了されます。Access Managerは、ログアウト・ページを表示し、ここから、様々なWebゲート・エージェントにユーザーのCookieを削除するよう指示が出ます。そして、Access Managerは、ユーザーをリダイレクトによりIdentity Federationに戻し、ログアウト・リクエスト・メッセージとともにユーザーをHTTPリダイレクトまたはHTTP POST経由でリダイレクトするか、ログアウト・リクエスト・メッセージをSOAP経由で直接送信することにより、このセッションに関与する各パートナ(最初にユーザーをリダイレクトしたパートナを除く)への通知を行って、Federationログアウト・プロセスを再開します。Identity FederationはOIFセッションを強制終了し、最初にユーザーをIdentity Federationサーバーにリダイレクトしたパートナに、ユーザーをログアウト・レスポンス・メッセージとともにリダイレクトします。
29.4.3 認可
Identity Federationサーバーは、IdPとして機能する場合、Federation SSO操作中、アイデンティティ・トークンをSPに発行する必要があります。
アイデンティティ・トークンは、ユーザー情報とセッション情報を含みます。デフォルトでは、認可機能は無効になっています。この機能は、configureFedSSOAuthz
WLSTコマンドを使用して、有効にも無効にもできます。TokenServiceRPタイプのリソースと(リソースURLをSPパートナIDに設定)、リソースが追加されるトークン発行ポリシーを作成する必要もあります。トークン発行ポリシーは、トークンの発行条件を示します。
29.4.4 強制認証
SAML 2.0とOpenID 2.0は、有効なユーザー・セッションがすでに存在している場合でもユーザーがIdPによってチャレンジを受ける必要があるかどうかを、フェデレーションSSO中にSPが示す方法を提供しています。
この場合、SPは、IdPがユーザーに対して再度チャレンジを渡す必要がある、つまり強制認証を行う必要があることを示すパラメータ付きの認証リクエストを送信します。
29.4.5 パッシブ・アイデンティティ・プロバイダの指定
SAML 2.0とOpenID 2.0は、Identity Providerがユーザーと対話する必要があるかどうかを、フェデレーションSSO中にSPが示す方法を提供しています。
この場合、SPは、IdPがユーザーと対話する必要がない、つまりパッシブでいる必要があることを示すパラメータ付きの認証リクエストを送信します。IdPは、パラメータを認識し、それぞれ次の内容をSPに戻します。
-
エラー(IdPがユーザーと対話する必要があるが、このパラメータによりそれができない場合)。
-
ユーザーが有効なセッションを持っているかどうかを示すフェデレーション・アサーション。
29.4.6 ユーザーとアサーションのマッピング
Identity Federationでは、IdPパートナが作成したSAMLアサーションのSPによる検証が終わると、そのアサーションをローカル・ユーザーにマップできます。
次のいずれかの方法で、Identity FederationによってSAMLアサーションがローカル・ユーザーにマップされます。
-
ユーザー属性(
mail
など)を持つユーザー・レコードにSAMLサブジェクトをマップする方法。 -
ユーザー属性を持つユーザー・レコードにSAMLアサーション属性をマップする方法(たとえば、SAMLアサーション属性
emailAddress
をmail
にマップ)。 -
LDAP問合せを使用して、SAMLアサーションの
AttributeStatement
要素に含まれる1つ以上の属性またはSAMLサブジェクトをマップする方法。SAML属性名およびこのマップ先となるユーザー属性の両方を構成する必要があります。
29.5 フェデレーションSSOの開始
フェデレーションSSOプロセスは、Identity FederationがIdPまたはSPとして動作している場合に開始できます。
29.5.1 IdPが開始するフェデレーションSSOサービス
IdPが開始するフェデレーションSSOサービスには、providerid、returnurlおよびacsurlの3つの問合せパラメータがあります。
Identity FederationがIdPとして機能する場合、フェデレーションSSOを開始するためのURLは次のとおりです。
http://public-oam-host:public-oam-port/oamfed/idp/initiatesso
問合せパラメータは次のとおりです。
-
providerid: フェデレーションSSOを実行するSPパートナの名前、またはフェデレーションSSOを実行するSPパートナの発行者ID/プロバイダID。(必須)
-
returnurl: フェデレーションSSOの成功後ユーザーがリダイレクトされるSP URL(オプション)
-
acsurl: Identity FederationがSAML 2.0アサーションでユーザーをリダイレクトするSAML 2.0アサーション・コンシューマ・サービスURL。このURLはSP SAML 2.0メタデータで宣言する必要があります。(オプション)
29.5.1.1 SAMLアサーションの複数値属性
この機能のデフォルト動作では、ユーザーが複数のグループに属し、always sendがtrueに設定されている場合、SSO時に、IdPによってGroup属性がカンマ区切りの形式で送信されます。拡張動作では、multivaluegroupsフラグがtrueに設定されている場合、SSO時に、IdPによってGroup属性がカンマ区切りではなく別個のSAML文で送信されます。
次のSSOプロトコルでは、複数値のGroups SAML属性がサポートされます。
-
SAML 2.0
-
SAML 1.1
-
この機能を有効にするには、OAM構成を要件に応じて更新する必要があります。multivaluegroups属性設定はデフォルトでは無効になっており、oam-config.xmlに存在しません。ユーザーは、WLSTコマンドを使用してoam-config.xmlにこの設定を追加してtrueに設定し、Group属性に対して複数の属性文を有効にする必要があります。
-
WLSTコマンドを使用してmultivaluegroups属性設定をoam-config.xmlのパートナ・レベル、パートナ・プロファイル・レベルまたはグローバル・レベルに追加し、trueに設定ます。
<Setting Name="multivaluegroups" Type="xsd:boolean">true</Setting>
-
パートナ・レベルでのmultivaluegroupsの有効化または無効化
updatePartnerProperty(partnerName="spPartnername", partnerType="SP",propName="multivaluegroups",propValue="true/false",type="boolean");
-
パートナ・プロファイル・レベルでのmultivaluegroupsの有効化または無効化
putBooleanProperty("/fedpartnerprofiles/saml20-sp-partner-profile/multivaluegroups","true/false");
-
グローバル・レベルでのmultivaluegroupsの有効化または無効化
putBooleanProperty("/idpglobal/multivaluegroups","true/false");
-
29.5.2 SPが開始するフェデレーションSSOサービス
SPが開始するフェデレーションSSOサービスには、provideridおよびreturnurlの2つの問合せパラメータがあります。
Identity FederationがSPとして機能する場合、フェデレーションSSOを開始するためのURLは次のとおりです。
http://public-oam-host:public-oam-port/oamfed/sp/initiatesso
問合せパラメータは次のとおりです。
-
providerid: フェデレーションSSOを実行するIdPパートナの名前、またはフェデレーションSSOを実行するIdPパートナの発行者ID/プロバイダID。(必須)
-
returnurl: フェデレーションSSOの成功後ユーザーがリダイレクトされるURL(オプション)
29.5.3 属性コンシューミング・サービス
OAMフェデレーション・サービスは、標準のSAML2vベースのインタフェースおよび要素をサポートするために拡張されています。
この節では、以下のトピックについて説明します。
29.5.3.1 属性コンシューミング・サービスの要素
属性コンシューミング・サービスには、AttributeConsumingService
、AttributeConsumingServiceIndex
およびNameQualifier
という3つの要素が含まれます。
AttributeConsumingService
AttributeConsumingService
要素は、SPメタデータに含まれています。この要素には、次のフィールドが含まれています。
-
ServiceName
-
ServiceDescription
-
index
-
isDefault
-
RequestedAttribute
には、次のフィールドが含まれています。-
acsIndex
-
rqstAttrName
ノート:
rqstAttrName
フィールドは、name
、fiscal number
、email
など、任意のユーザー定義値にできます。 -
rqstAttrNameFormat
-
rqstAttrFriendlyName
-
rqstAttrIsRequired
-
SPメタデータの例:
<md:AttributeConsumingService index="1" isDefault="false"> <md:ServiceName xml:lang="en_US">serviceName1</md:ServiceName> <md:ServiceDescription xml:lang="en_US">serviceDesc1</md:ServiceDescription> <md:RequestedAttribute FriendlyName="friendlyName1" Name="email" NameFormat="sample:urn:format" isRequired="true"/> </md:AttributeConsumingService> <md:AttributeConsumingService index="1" isDefault="true"> <md:ServiceName xml:lang="eng">Updated-Service-Name1</md:ServiceName> <md:ServiceDescription xml:lang="eng">updatedServiceDesc</md:ServiceDescription> <md:RequestedAttribute FriendlyName="friendlyName1" Name="email" NameFormat="sample:urn:format" isRequired="true"/> <md:RequestedAttribute FriendlyName="" Name="empNum" NameFormat="empFormat1" isRequired="false"/> <md:RequestedAttribute FriendlyName="fname" Name="empFirstName" NameFormat="firstnameformat1" isRequired="true"/> </md:AttributeConsumingService>
AttributeConsumingService
AttributeConsumingServiceIndex
要素は、SAML 2.0認証リクエストに含まれています。ランタイムSSOで、AttributeConsumingServiceIndex
がauthnrequest
に表示されるよう、SPで開始されたURLでattributeconsumingserviceindex
パラメータを渡します。
たとえば、http://sp-host:sp-managed-port/oamfed/sp/initiatesso?providerid=http://idp-host:idp-managed-port/oam/fed&returnurl=http://sp-host:webgate-port/cgi-bin/headers.cgi&attributeconsumingserviceindex=1
となります。
認証リクエストの例:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <samlp:AuthnRequest 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:samlp="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:x500="urn:oasis:names:tc:SAML:2.0:profiles:attribute:X500" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" AttributeConsumingServiceIndex="1" ID="id-atMY1jR9Vh7PBcWSjdqmyxIc1JNMSFD-zQ1d7lf8" Version="2.0" IssueInstant="2016-09-15T22:32:37Z" Destination="http://slc05ynv.us.oracle.com:21328/oamfed/idp/samlv20"> <saml:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">http://slc06fcv.us.oracle.com:23768/oam/fed</saml:Issuer> <samlp:NameIDPolicy AllowCreate="true"/> </samlp:AuthnRequest>
NameQualifier
NameQualifier
要素は、<samlp:issuer>
タグ内に含まれています。
例:
<saml:Issuer NameQualifier=" http://spid-sp.it" Format=" urn:oasis:names:tc:SAML:2.0:nameid format:entity"> SPID-sp-test </saml:Issuer>
デフォルトでは、NameQualifier
はfalseに設定されています。WLSTコマンドを使用して、oam-config.xmlファイル内でNameQualifier
をtrue
に設定できます。WLSTコマンドの詳細は、WebLogic Server WLSTコマンド・リファレンスを参照してください。
次の表では、WLSTコマンドを使用してNameQualifier
要素を有効または無効にする方法を示します。
アクション | WLSTコマンド例 |
---|---|
パートナ・レベルでNameQualifier を有効にします。
|
updatePartnerProperty(partnerName="idp-partner",partnerType="IDP",propName="samlrequestissuernamequalifier",propValue="http://sample.sp.it",type="string") |
パートナ・プロファイル・レベルでNameQualifier を有効にします。
|
putStringProperty("/fedpartnerprofiles/saml20-idp-partner-profile/samlrequestissuernamequalifier","http://profile-sample.it") |
グローバル・レベルでNameQualifier を有効にします。
|
putStringProperty("/spglobal/samlrequestissuernamequalifier","http://spglobal.it") |
パートナ・レベルでNameQualifier を無効にします。
|
deletePartnerProperty(partnerName="idp-partner",partnerType="IDP",propName="samlrequestissuernamequalifier") |
パートナ・プロファイル・レベルでNameQualifier を無効にします。
|
deleteStringProperty("/fedpartnerprofiles/saml20-idp-partner-profile/samlrequestissuernamequalifier") |
グローバル・レベルでNameQualifier を無効にします。
|
deleteStringProperty("/spglobal/samlrequestissuernamequalifier") |
29.5.3.2 属性コンシューミング・サービスのWLSTコマンド
属性コンシューミング・サービスは、10個のWebLogic Scripting Tool (WLST)コマンドでサポートされます。
詳細は、次の各項を参照してください。
29.5.3.2.1 getDefaultACS
このコマンドは、デフォルトの属性コンシューミング・サービスを取得します。
説明
getDefaultACS
コマンドは、デフォルトの属性コンシューミング・サービスを取得します。
構文
getDefaultACS()
例
この例では、getDefaultACS
コマンドの使用方法を示します。
getDefaultACS()
29.5.3.2.2 getAllRqstAttrsForACS
このコマンドは、指定された属性コンシューミング・サービスacsIndex
の下のリクエストされた属性のリストを取得します。
説明
getAllRqstAttrsForACS
コマンドは、指定された属性コンシューミング・サービスacsIndex
の下のリクエストされた属性のリストを取得します。
構文
getAllRqstAttrsForACS(acsIndex)
引数 | 説明 |
---|---|
acsIndex |
[必須] 属性コンシューミング・サービスのインデックス。 |
例
この例では、getAllRqstAttrsForACS(acsIndex)
コマンドの使用方法を示します。
getAllRqstAttrsForACS(1)
29.5.3.2.3 getAllACS
このコマンドは、構成されているすべての属性コンシューミング・サービスのリストを取得します。
説明
getAllACS
コマンドは、構成されているすべての属性コンシューミング・サービスのリストを取得します。
構文
getAllACS()
例
getAllACS()
コマンドの使用方法を示します。getAllACS()
29.5.3.2.4 getACS
このコマンドは、指定された属性コンシューミング・サービスacsIndex
を取得します。
説明
getACS
コマンドは、指定された属性コンシューミング・サービスacsIndexを取得します。
構文
getACS(acsIndex)
引数 | 定義 |
---|---|
acsIndex |
[必須] 属性コンシューミング・サービスのインデックス。 |
例
getACS(acsIndex)
コマンドの使用方法を示します。getACS(1)
29.5.3.2.5 addACS
このコマンドは、acsIndex
、serviceName
、attributeConsumingIsDefault
、rqstAttrName
、rqstAttrNameFormat
、rqstAttrFriendlyName
、rqstAttrIsRequired
およびserviceDescription
を使用して属性コンシューミング・サービスの新規エントリを作成します。
説明
このコマンドは、acsIndex
、serviceName
、attributeConsumingIsDefault
、rqstAttrName
、rqstAttrNameFormat
、rqstAttrFriendlyName
、rqstAttrIsRequired
およびserviceDescription
を使用して属性コンシューミング・サービスの新規エントリを作成します。
属性コンシューミング・サービスの作成時には、少なくとも1つのリクエストされた属性について詳細を提供する必要があります。<xml:lang>
パラメータは、サーバー・ロケールで自動的に更新されます。
ノート:
GETおよびDELETE WLSTコマンドを実行するには、acsIndex
を使用してaddACS
を作成する必要があります。
構文
addACS(acsIndex, serviceName, rqstAttrName, rqstAttrNameFormat, rqstAttrFriendlyName="", rqstAttrIsRequired="false", serviceDescription="", attributeConsumingIsDefault="false")
引数 | 定義 |
---|---|
acsIndex |
[必須] 属性コンシューミング・サービスのインデックスを指定します。 |
serviceName |
[必須] サービスの名前を指定します。 |
rqstAttrName |
[必須] リクエストされた属性の名前を指定します。 |
rqstAttrNameFormat |
[必須] リクエストされた属性の形式を指定します。 |
rqstAttrFriendlyName |
[オプション] 属性コンシューミング・サービスのフレンドリ名を指定します。 |
rqstAttrIsRequired |
[オプション] リクエストされた属性が必要かどうかを決定します。有効は値は、true およびfalse です。
|
serviceDescription |
[オプション] サービスの説明を指定します。デフォルト値は「 」です。 |
attributeConsumingIsDefault |
[オプション] デフォルトの属性コンシューミング・サービスを設定するには、この値を受け入れます。デフォルト値はfalse です。
|
例
この例では、addACS
コマンドの使用方法を示します。
addACS(1, "Updated-Service-Name1", "email", "sample:urn:format", rqstAttrFriendlyName="", rqstAttrIsRequired="false", serviceDescription="updatedServiceDesc", attributeConsumingIsDefault="true")
29.5.3.2.6 addRqstAttrToACS
このコマンドは、指定された属性コンシューミング・サービスacsIndex
のリストの下のrqstAttrName
、rqstAttrNameFormat
、rqstAttrFriendlyName
およびrqstAttrIsRequired
など、リクエストされた新規属性を追加します。
説明
addRqstAttrToACS
コマンドは、指定された属性コンシューミング・サービスacsIndex
のリストの下のrqstAttrName
、rqstAttrNameFormat
、rqstAttrFriendlyName
およびrqstAttrIsRequired
など、リクエストされた新規属性を追加します。
構文
addRqstAttrToACS(acsIndex, rqstAttrName, rqstAttrNameFormat, rqstAttrFriendlyName=None, rqstAttrIsRequired="false"):
引数 | 定義 |
---|---|
acsIndex |
[必須] 属性コンシューミング・サービスのインデックスを指定します。 |
rqstAttrName |
[必須] リクエストされた属性の名前を指定します。 |
rqstAttrNameFormat |
[必須] リクエストされた属性の形式を指定します。 |
rqstAttrFriendlyName |
[オプション] 属性コンシューミング・サービスのフレンドリ名を指定します。 |
rqstAttrIsRequired |
[オプション] リクエストされた属性が必要かどうかを決定します。有効は値は、true およびfalse です。
|
例
この例では、addRqstAttrToACS
コマンドの使用方法を示します。
addRqstAttrToACS(1, "empNumber", "empFormat1", rqstAttrFriendlyName=None, rqstAttrIsRequired="false"):
29.5.3.2.7 updateACS
このコマンドは、指定された属性コンシューミング・サービスoldACSIndex
の任意またはすべてのフィールドを更新します。
説明
updateACS
コマンドは、指定された属性コンシューミング・サービスoldACSIndex
の任意またはすべてのフィールド(つまり、newServiceName
、newServiceDescription
、newAttributeLang
、newIsDefault
およびnewACSIndex
)を更新します。
構文
updateACS(oldACSIndex, newServiceName=None, newServiceDescription=None, newAttributeLang=None, newIsDefault=None, newACSIndex=None)
引数 | 定義 |
---|---|
oldACSIndex |
[必須] 既存の属性コンシューミング・サービス・インデックスの名前を指定します。 |
newServiceName |
[オプション] 属性コンシューミング・サービスの更新した名前を指定します。 |
newServiceDescription |
[オプション] 属性コンシューミング・サービスの更新した説明を指定します。 |
newAttributeLang |
[オプション] 属性コンシューミング・サービスの名前および説明のための、更新したxml:langを指定します。 |
newIsDefault |
[オプション] 属性コンシューミング・サービスに新しいデフォルト値を設定するには、true またはfalse などの値を受け入れます。有効は値は、true およびfalse です。
|
newACSIndex |
[オプション] 新しい属性コンシューミング・サービス・インデックスの名前を指定します。 |
例
updateACS
コマンドの使用方法を示します。
ノート:
ACSを正常に更新するには、acsIndex
とともに少なくとも1つのオプション・パラメータが必要です。
-
newServiceName
フィールドのみを更新するには、次のコマンドを使用します。updateACS(1, newServiceName="SampleAttributeName");
-
newServiceName
とisdefault
を両方とも更新するには、次のコマンドを使用します。updateACS(1, newServiceName="SampleAttributeName", newIsDefault="true");
29.5.3.2.8 updateRqstAttrForACS
このコマンドは、指定された属性コンシューミング・サービスacsIndex
の下の指定されたリクエスト済属性oldRqstAttrName
のすべてのフィールドを更新します。
説明
updateRqstAttrForACS
コマンドは、指定された属性コンシューミング・サービスacsIndex
の下の指定されたリクエスト済属性oldRqstAttrName
のすべてのフィールドを更新します。
構文
updateRqstAttrForACS(acsIndex, oldRqstAttrName, newRqstAttrName=None, newRqstAttrFriendlyName=None, newRqstAttrNameFormat=None, newRqstAttrIsRequired=None)
引数 | 定義 |
---|---|
acsIndex |
[必須] 属性コンシューミング・サービスのインデックスを指定します。 |
oldRqstAttrName |
[必須] フィールドを更新する、既存のリクエストされた属性の名前を指定します。 |
newRqstAttrName |
[オプション] リクエストされた属性の更新した名前を指定します。 |
newRqstAttrFriendlyName |
[オプション] リクエストされた属性の更新したフレンドリ名を指定します。 |
newRqstAttrNameFormat |
[オプション] リクエストされた属性の名前の更新した形式を指定します。 |
newRqstAttrIsRequired |
[オプション] リクエストされた属性が属性コンシューミング・サービスから必要となるかどうかを決定します。有効は値は、true およびfalse です。
|
例
updateRqstAttrForACS
コマンドの使用方法を示します。
ノート:
指定されたリクエスト済属性を正常に更新するには、acsIndex
とともに少なくとも1つのオプション・パラメータが必要です。
-
newRqstAttrName
のみを更新するには、次のコマンドを使用します。updateRqstAttrForACS(acsIndex, oldRqstAttrName, newRqstAttrName="SAMPLE_RQST_ATTR");
-
リクエストされた属性の
newRqstAttrName
およびnewRqstAttrNameFormat
を更新するには、次のコマンドを使用します。updateRqstAttrForACS(acsIndex, oldRqstAttrName, newRqstAttrName="SAMPLE_RQST_ATTR", newRqstAttrNameFormat="urn:oasis:sample");
29.5.3.2.9 deleteACS
このコマンドは、指定された属性コンシューミング・サービスacsIndex
を削除します。
説明
deleteACS
コマンドは、指定された属性コンシューミング・サービスacsIndex
を削除します。
構文
deleteACS(acsIndex)
引数 | 説明 |
---|---|
acsIndex |
[必須] 属性コンシューミング・サービスのインデックスを指定します。 |
例
deleteACS
コマンドの使用方法を示します。deleteACS(1)
29.5.3.2.10 deleteRqstAttrForACS
このコマンドは、リクエストされた属性rqstAttrName
を、指定された属性コンシューミング・サービスacsIndex
から削除します。
説明
deleteRqstAttrForACS
コマンドは、リクエストされた属性rqstAttrName
を、指定された属性コンシューミング・サービスacsIndex
から削除します。
構文
deleteRqstAttrForACS(acsIndex, rqstAttrName)
引数 | 説明 |
---|---|
acsIndex |
[必須] 属性コンシューミング・サービスのインデックスを指定します。 |
rqstAttrName |
[必須] リクエストされた属性の名前を指定します。 |
例
deleteRqstAttrForACS
コマンドの使用方法を示します。deleteRqstAttrForACS(1, rqstAttrName="empFirstName")
29.6 Identity Federationデータの交換
統合されたIdentity Federationサーバーは、Security Access Markup Language (SAML) 2.0仕様、SAML 1.1、OpenID 2.0またはWS-Federation 1.1のいずれかを使用してリクエスト・メッセージとレスポンス・メッセージの転送と受信をサポートします。
この節では、以下のトピックについて説明します。
ノート:
特定のコンテキストでSAMLが使用される方法を示す仕様は、SAMLプロファイルと呼ばれます。SAMLアサーションまたはメッセージが別のプロトコルで転送される方法を示す仕様は、SAMLバインディングと呼ばれます。
29.6.1 SAML 2.0の使用
SAMLは、eXtensible Markup Language (XML)フレームワークを使用して、SAMLアサーションを提供するベンダー・プラットフォーム間の相互運用性を実現するためのシンプルなリクエスト-レスポンス・プロトコルを定義します。
SAMLリクエスタはSAMLリクエスト要素をレスポンダに送信します。同様に、SAMLレスポンダはSAMLレスポンス要素をリクエスタに戻します。SAML 2.0プロトコル内部で、Identity Federationは次の各項で説明する機能をサポートします。
29.6.1.1 SSOとフェデレーションのためのSAML 2.0バインディング
SSOとフェデレーションは、認証情報を転送するSAMLアーティファクトとアサーションに依存します。
SSOとフェデレーションにおけるデータ交換に対して次のバインディングがサポートされています。
-
HTTPアーティファクト・バインディングは、アーティファクト解決プロトコルとSAML SOAPバインディング(HTTP経由)を使用して、参照によりSAMLメッセージを解決します。IdPは、レジストリにアサーションを格納し、格納されているアサーションを参照する文字列(アーティファクト)とともに、SPにユーザーをリダイレクトします。SPは、SOAP/HTTP経由でIdPディレクトリに直接接続し、アーティファクトを提示することにより、アサーションを取得します。
-
HTTP POSTバインディングは、プロバイダ間で認証情報を伝達するのにHTMLフォームに依存します。たとえば、サービス・プロバイダはHTTPリダイレクトを使用してリクエストを送信します。アイデンティティ・プロバイダはHTTP POSTを使用してリクエストを転送します。IdPは、アサーションそのものを含むHTMLフォームによりユーザーをSPにリダイレクトすることもできます。
-
リバースSOAPバインディング(PAOS)は、Access ManagerがIdPとして構成されている場合にのみサポートされます。このフローで、クライアントは、SAML 2.0認証リクエストを含むSOAPリクエストをIdPに送信します。IdPはユーザーをローカルに認証し、SAML 2.0アサーションを含むSOAPレスポンスを返します。そして、クライアントは結果をリモートSPに提示します。
29.6.1.2 シングル・ログアウトのためのSAML 2.0バインディング
シングル・ログアウトは、プロバイダがそれぞれログアウト・イベントを通知し合う方法を定義します。このメッセージ交換により、ログアウトがSPまたはIdPで発生すると、すべてのセッションが終了します。
シングル・ログアウトにおけるデータ交換に対して次のプロファイルがサポートされています。
-
HTTPリダイレクト・プロファイルは、プロバイダ間のHTTPリダイレクトに依存します。たとえば、IdPは、ログアウト・リクエスト/レスポンス・メッセージを含むURLにより302リダイレクト・オペレーションを使用してSPにユーザーをリダイレクトします。このプロファイルは、シングル・ログアウトにおけるデータの送受信に対して使用できます。
-
HTTP POSTプロファイルは、ログアウト・リクエスト/レスポンス・メッセージを含むHTMLフォームを使用してIdPがユーザーをSPにリダイレクトするときに発生します。このプロファイルは、シングル・ログアウトにおけるデータの送受信に対して使用できます。
-
SOAPバインディング・プロファイルは、IdPをSPに直接接続できるようにして、ログアウト・リクエスト・メッセージを送信します。ログアウト時、IdPは、様々なSPに順にユーザーをリダイレクトします。SPは、ログアウト・レスポンス・メッセージで応答します。このプロファイルは、プロバイダ間での非同期SOAP over HTTPメッセージング・コールに依存し、シングル・ログアウトに関するデータを送信するためだけに使用できます。
29.6.1.3 SAML 2.0名前IDフォーマット
名前識別子マッピングは、異なるSPのネーム・スペースで認証されているプリンシパルに割り当てられた名前識別子をSPがどのように取得するかを定義します。
1つのSPに対して認証されているプリンシパルが2つ目のサイトへのアクセスを要求すると、プリンシパルのフェデレーションがSP間で存在していない場合でも、2つ目のSPがこのプロトコルを使用して、名前識別子を取得し、プリンシパルを最初のSPに伝達します。表29-1のSAML 2.0名前IDフォーマットは、IdPおよびSPモードの両方でサポートされています。
表29-1 サポートされているSAML 2.0名前IDフォーマット
名前IDフォーマット | 説明 |
---|---|
urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified |
SP/IdPは適用可能なユーザー属性を使用して、名前ID値を入力または処理します。 |
urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress |
SP/IdPは適用可能なユーザー属性を使用して、名前ID値を入力または処理します。 |
urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName |
SP/IdPは適用可能なユーザー属性を使用して、名前ID値を入力または処理します。 |
urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName |
SP/IdPは適用可能なユーザー属性を使用して、名前ID値を入力または処理します。 |
urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos |
SP/IdPは適用可能なユーザー属性を使用して、名前ID値を入力または処理します。 |
urn:oasis:names:tc:SAML:2.0:nameid-format:persistent |
SP/IdPは次のいずれかを行います。
|
urn:oasis:names:tc:SAML:2.0:nameid-format:transient |
IdPがランダム値を生成します。 |
カスタム値 |
この名前IDフォーマットが使用される場合、OIF/IdPはユーザー属性を使用して名前ID値を入力します。 |
29.6.1.4 SAML 2.0データの保護
SAML 2.0仕様を使用して転送されるアイデンティティ・データのセキュリティについては、次のことが当てはまります。
-
すべての送信アサーションに署名される。
-
アサーションを含むすべての送信レスポンスには署名されない。
-
アサーションを含まないすべての送信リクエスト/レスポンスには署名される。
-
署名証明書はメッセージに含まれない。
-
Identity Federation (IdPとして機能)は、SPパートナ・メタデータで指定されている場合以外、どのメッセージに対しても署名を必要としない。
-
名前ID、属性およびアサーションは暗号化されない。
-
デフォルトXML暗号化アルゴリズムについての情報は、http://www.w3.org/TR/2002/REC-xmlenc-core-20021210/Overview.html#aes128-cbcに記載されています。
-
署名のデフォルトのハッシュ生成アルゴリズムはSHA-1です。Identity FederationはSHA-256を使用するように構成できます。
29.6.1.5 OAM SAML 2.0でサポートされる暗号化アルゴリズム
OAM SAML 2.0では、次の暗号化モードがサポートされています:
- http://www.w3.org/2001/04/xmlenc#aes128-cbc
- http://www.w3.org/2001/04/xmlenc#aes192-cbc
- http://www.w3.org/2001/04/xmlenc#aes256-cbc
- http://www.w3.org/2001/04/xmlenc#tripledes-cbc
OAM SAML 2.0では、次のAES-GCM暗号化モードもサポートされています:
この内容は、OAMバンドル・パッチ12.2.1.4.210920以降のリリースにのみ適用されます。
29.6.1.6 デフォルトの暗号化アルゴリズムの変更
デフォルトの暗号化アルゴリズムを変更するには、次のステップを実行します:
$MW_HOME/common/bin/
に移動し、wlst.sh
コマンドを実行します。connect()
を実行してWebLogic管理サーバーに接続します。プロンプトが表示されたら、ユーザー名とパスワードを入力します。- WLSTシェルで
domainRuntime()
を実行します - 次のいずれかを実行します:
- デフォルトの暗号化アルゴリズムをパートナ・プロファイル・レベルで設定するには、次のコマンドを実行します:
putStringProperty("/fedpartnerprofiles/<PARTNER_PROFILE>/defaultencryptionmethod", "<ALGORITHM>")
ここで、
<PARTNER_PROFILE>
はパートナ・プロファイル名です。たとえば、saml20-sp-partner-profile
および<ALGORITHM>
は、OAM SAML 2.0でサポートされている暗号化アルゴリズムの1つです(例:http://www.w3.org/2009/xmlenc11#aes256-gcm
) - パートナ・レベルでデフォルトの暗号化アルゴリズムを設定するには、次のコマンドを実行します:
updatePartnerProperty("<PARTNER>", "<PARTNER_TYPE>", "defaultencryptionmethod", "<ALGORITHM>", "string")
ここで、
<PARTNER>
はパートナ名(AcmeSP
など)、<PARTNER_TYPE>
はsp
またはidp
のいずれかのパートナ・タイプ、<ALGORITHM>
は、OAM SAML 2.0でサポートされている暗号化アルゴリズムの1つ(http://www.w3.org/2009/xmlenc11#aes256-gcm
など)です
- デフォルトの暗号化アルゴリズムをパートナ・プロファイル・レベルで設定するには、次のコマンドを実行します:
exit()
を実行して、WLST環境を終了します
29.6.1.7 SAML 2.0サービスの詳細
IdPとSP用SAML 2.0メタデータは単一のXMLドキュメントに含まれ、Oracle Access Managementコンソールを使用して取得できます。
メタデータは、次のURLのいずれかにアクセスすることによっても取得できます。
http://public-oam-host:public-oam-port/oamfed/idp/metadata http://public-oam-host:public-oam-port/oamfed/sp/metadata
署名と暗号化で使用される証明書は、SAML 2.0メタデータ経由で発行されます。証明書は、キーストア設定で定義されているとおりキー/証明書エントリのキーIDを指定するサービスURLを使用することにより取得できます。(「フェデレーションのキーストア設定の定義」を参照してください。)たとえば、
http://public-oam-host:public-oam-port/oamfed/idp/cert?id=osts_signing
IdPプロファイルとSPプロファイルのプロバイダIDと発行者IDは同じで、Oracle Access Managementコンソールを使用して適用可能なプロバイダ・パートナ・プロファイルから取得できます。
表29-2に、Identity FederationがIdPとして機能するように構成されている場合に使用されるSAML 2.0 URLを示します。
表29-2 アイデンティティ・プロバイダとして機能するIdentity FederationのためのSAML 2.0 URL
説明 | URL |
---|---|
HTTPリダイレクト・バインディング用シングル・サインオン・サービスURL |
http://public-oam-host:public-oam-port/oamfed/idp/samlv20 |
HTTP POSTバインディング用シングル・サインオン・サービスURL |
http://public-oam-host:public-oam-port/oamfed/idp/samlv20 |
SOAPバインディング用シングル・サインオン・サービスURL |
http://public-oam-host:public-oam-port/oamfed/idp/soap |
SOAPバインディング用アーティファクト解決サービスURL |
http://public-oam-host:public-oam-port/oamfed/idp/soap |
HTTPリダイレクト・バインディング用シングル・ログアウト・サービスURL |
http://public-oam-host:public-oam-port/oamfed/idp/samlv20 |
HTTP POSTバインディング用シングル・ログアウト・サービスURL |
http://public-oam-host:public-oam-port/oamfed/idp/samlv20 |
SOAPバインディング用属性権限サービスURL |
http://public-oam-host:public-oam-port/oamfed/aa/soap |
表29-3に、Identity FederationがSPとして機能するように構成されている場合に使用されるSAML 2.0 URLを示します。
表29-3 サービス・プロバイダとして機能するIdentity FederationのためのSAML 2.0 URL
説明 | URL |
---|---|
アーティファクト・バインディング用アサーション・コンシューマ・サービスURL |
http://public-oam-host:public-oam-port/oam/server/fed/sp/sso |
HTTP POSTバインディング用アサーション・コンシューマ・サービスURL |
http://public-oam-host:public-oam-port/oam/server/fed/sp/sso |
HTTPリダイレクト・バインディング用シングル・ログアウト・サービスURL |
http://public-oam-host:public-oam-port/oamfed/sp/samlv20 |
HTTP POSTバインディング用シングル・ログアウト・サービスURL |
http://public-oam-host:public-oam-port/oamfed/sp/samlv20 |
29.6.2 SAML 1.1の使用
SAML 2.0とSAML 1.1で同じユース・ケースを解決できますが、方法が異なります。SAML 1.1リクエストの最も重要なタイプは問合せです。
SPは、安全なバック・チャネル上で(SOAPを使用して)IdPへの直接問合せを作成します。SAML 1.1プロトコル内部で、Identity Federationは次の各項で説明する機能をサポートします。
29.6.2.1 WebブラウザSSO用SAML 1.1プロファイル
SAML 1.1プロファイルは、認証情報を転送するSAMLアーティファクトとSPへのアサーションに依存します。
次のプロファイルがサポートされています。
-
ブラウザ/アーティファクト・プロファイルは、参照によって(ブラウザ経由でHTTPリダイレクトを使用して)SAMLアサーションをIdPからSPに渡します。このアーティファクトは、以降は、SPがSOAP over HTTP上のSAMLを使用して、IdPからのアサーションを取得するバックチャネル交換により逆参照されます。
-
ブラウザ/POSTプロファイルは、ブラウザ経由でHTTP POSTを使用してSSOアサーションをSPに渡します。この動作のことを、アイデンティティ・プロバイダがサービス・プロバイダにアサーションをプッシュするという言い方をします。
29.6.2.2 SAML 1.1ログアウト・プロファイル
SAML 1.1仕様ではログアウト・プロファイルを定義しないので、Identity Federationはユーザーのログアウトをリモート・パートナに通知できません。
29.6.2.3 SAML 1.1名前IDフォーマット
1つのSPに対して認証されているプリンシパルが2つ目のサイトへのアクセスを要求すると、プリンシパルのフェデレーションがSP間で存在していない場合でも、2つ目のSPが名前識別子を取得し、プリンシパルを最初のSPに伝達します。
表29-4のSAML 1.1名前IDフォーマットは、IdPおよびSPモードの両方でサポートされています。
表29-4 サポートされているSAML 1.1名前IDフォーマット
名前IDフォーマット | 説明 |
---|---|
urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified |
SP/IdPは適用可能なユーザー属性を使用して、名前ID値を入力または処理します。 |
urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress |
SP/IdPは適用可能なユーザー属性を使用して、名前ID値を入力または処理します。 |
urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName |
SP/IdPは適用可能なユーザー属性を使用して、名前ID値を入力または処理します。 |
urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName |
SP/IdPは適用可能なユーザー属性を使用して、名前ID値を入力または処理します。 |
urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos |
SP/IdPは適用可能なユーザー属性を使用して、名前ID値を入力または処理します。 |
カスタム値 |
この名前IDフォーマットが使用される場合、OIF/IdPはユーザー属性を使用して名前ID値を入力します。 |
29.6.2.4 SAML 1.1データ・セキュリティについて
SAML 1.1仕様を使用して転送されるアイデンティティ・データのセキュリティについては、次のことが当てはまります。
-
すべての送信アサーションに署名される。
-
アサーションを含むすべての送信レスポンスには署名されない。
-
署名証明書はメッセージに含まれない。
-
Identity Federation (IdPとして機能)は、どのメッセージに対しても署名を必要としない。
-
署名のデフォルトのハッシュ生成アルゴリズムはSHA-1です。Identity FederationはSHA-256を使用するように構成できます。
29.6.2.5 SAML 1.1サービスの詳細
署名および暗号化用に使用される証明書は、キーストア設定で定義されているとおりキー/証明書エントリのキーIDを指定するサービスURLを使用することにより取得できます。
詳細は、「フェデレーションのキーストア設定の定義」を参照してください。
たとえば、
http://public-oam-host:public-oam-port/oamfed/idp/cert?id=osts_signing
IdPプロファイルとSPプロファイルのプロバイダIDと発行者IDは同じで、Oracle Access Managementコンソールを使用して適用可能なプロバイダ・パートナ・プロファイルから取得できます。
表29-5に、Identity FederationがIdPとして機能するように構成されている場合に使用されるSAML 1.1 URLを示します。
表29-5 サービス・プロバイダとして機能するIdentity FederationのためのSAML 1.1 URL
説明 | URL |
---|---|
シングル・サインオン・サービスURL |
http://public-oam-host:public-oam-port/oamfed/idp/samlv11sso |
アーティファクト解決サービスURL |
http://public-oam-host:public-oam-port/oamfed/idp/soapv11 |
表29-6に、Identity FederationがSPとして機能するように構成されている場合に使用されるSAML 1.1 URLを示します。
表29-6 サービス・プロバイダとして機能するIdentity FederationのためのSAML 1.1 URL
説明 | URL |
---|---|
アサーション・コンシューマ・サービスURL |
http://public-oam-host:public-oam-port/oam/server/fed/sp/sso |
29.6.3 OpenID 2.0の使用
OpenID 2.0では、ユーザーは、優先OpenID IdPでアカウントを作成し、OpenID認証を受けるすべてのWebサイトにサインオンするためのベースとしてそのアカウントを使用できます。
アイデンティティ・データは、OpenID識別子(エンドユーザーによって選択されているURLまたはXRI)の交換によって伝達され、IdPはOpenID認証を提供します。OpenIDプロトコル内部で、Identity Federationは次の各項で説明する機能をサポートします。
29.6.3.1 OpenID 2.0認証/SSO
OpenID 2.0では、ユーザーは特別なOpenID URLを使用して新しいWebサイトにサインインできます。たとえば、myblog.comにブログを持っているユーザーが、yourname.myblog.comというOpenID URLを作成するなどします。OpenIDログインを受け入れる2つ目のWebサイトに移動して、OpenIDボタンをクリックする場合、このURLを入力し、クリックしてログインします。2つ目のSPは、このOpenID識別子でOpenID IdP URLを検出します。OpenID IdPが認証ユーザーをSPにリダイレクトする場合、ここには操作結果、ユーザーの名前IDおよび属性(オプション)を含むOpenIDアサーションが含まれます。
29.6.3.2 OpenID 2.0ログアウト
OpenID 2.0仕様はログアウト・プロファイルを定義しないので、Identity Federationではユーザーのログアウトをリモート・パートナに通知できません。
29.6.3.3 OpenID 2.0名前IDフォーマット
OpenIDは名前IDをランダム文字列になるように定義するので、Identity Federationは、名前IDの値として次のいずれかを使用します。
-
ハッシュ・ユーザー属性(DNなど)
-
フェデレーション・データ・ストアに格納される、生成されたランダム値。このモードでは、フェデレーション・データ・ストアの使用が必要です。
29.6.3.4 OpenID 2.0データ・セキュリティについて
OpenID 2.0仕様を使用して転送されるアイデンティティ・データのセキュリティについては、次のことが当てはまります。
-
すべての送信アサーションに署名される。
-
デフォルトのアソシエーション・アルゴリズムはHMAC SHA-1です。
-
デフォルトのセッション・アグリーメント・アルゴリズムはDiffie-Hellmann SHA-1です。
29.6.3.5 OpenID 2.0拡張機能
OpenIDは拡張仕様です。統合Identity Federationを使用する際、次の拡張機能を使用できます。
-
Attribute Exchange (AX): 有効である場合、SPは、属性をOpenIDアサーション・レスポンスに含めるよう要求できます。IdPは、要求された属性、またはそのように構成された属性をレスポンスに含めることができます。(デフォルト: 有効)
-
Provider Authentication Policy Extension (PAPE): 有効である場合、高度な認証方法を定義および指定できます。たとえば、フィッシング対応認証方法、マルチファクタ認証などがあります。(デフォルト: 無効)
-
GSAレベル1: このサーバーがhttp://www.idmanagement.gov/schema/2009/05/icam/openid-trust-level1.pdfポリシーに準拠しているかどうかを示すOpenIDアサーションの識別子。これが有効で、PAPEが有効である場合、OIFは、OpenIDレスポンスにこのポリシーを含めます。(デフォルト: 無効)
-
Level Of Assurance (LOA): このサーバーがhttp://csrc.nist.gov/publications/nistpubs/800-63/SP800-63V1_0_2.pdfポリシーに準拠しているかどうかを示すOpenIDアサーションの識別子。有効である場合、OIF/IdPは、Level of AssuranceとschemeID間のマッピングを使用して、OpenIDレスポンス内でLOAに対して使用する値を判断します(詳細は2.5.2を参照)。(デフォルト: 無効)
-
No Private Identifier Information (NoPII): このサーバーがhttp://www.idmanagement.gov/schema/2009/05/icam/no-pii.pdfポリシーに準拠しているかどうかを示すOpenIDアサーションの識別子。有効である場合、OIFはOpenIDアサーションに属性を含めないことに注意してください。
-
Persistent Personal Identifier (PPID): このサーバーがhttp://schemas.xmlsoap.org/ws/2005/05/identity/claims/privatepersonalidentifierポリシーに準拠しているかどうかを示すOpenIDアサーションの識別子。これが有効で、PAPEが有効である場合、OIFは、OpenIDレスポンスにこのポリシーを含めます。(デフォルト: 無効)
-
Registration (SReg): OpenIDアサーション内の属性のための拡張機能。有効である場合、SPは、レスポンスに属性を含めるように要求できます。IdPは、要求された属性またはレスポンスに含めるように構成されている属性を含めることができます。(デフォルト: 無効)
-
UI Extension (UIExt): UI用の拡張機能。OIF/IdPにおけるこの拡張機能のサポートは、XRDSメタデータでの通知に限定されます。(デフォルト: 無効)
29.6.3.6 OpenID 2.0サービスの詳細
次のURLはOpenID 2.0 SPコンポーネントのレルムです。
http://public-oam-host:public-oam-port
表29-7に、Identity FederationがIdPとして機能するように構成されている場合に使用されるOpenID 2.0 URLを示します。
表29-7 アイデンティティ・プロバイダとして機能するIdentity FederationのためのOpenID 2.0 URL
説明 | URL |
---|---|
シングル・サインオン・サービスURL |
http://public-oam-host:public-oam-port/oamfed/idp/openidv20 |
検出サービスURL |
http://public-oam-host:public-oam-port/oamfed/idp/openidv20 |
表29-8に、Identity FederationがSPとして機能するように構成されている場合に使用されるOpenID 2.0 URLを示します。
表29-8 サービス・プロバイダとして機能するIdentity FederationのためのOpenID 2.0 URL
説明 | URL |
---|---|
シングル・サインオン・サービスURL |
http://public-oam-host:public-oam-port/oam/server/fed/sp/sso |
検出サービスURL |
http://public-oam-host:public-oam-port/oamfed/sp/openidv20 |
レルムURL |
http://public-oam-host:public-oam-port |
29.6.4 WS-Federation 1.1の使用
Access Managerでは、WS-Federation 1.1プロトコルの機能がサポートされるようになりました。
新しいWLSTコマンドaddWSFed11IdPFederationPartner
およびaddWSFed11SPFederationPartner
を使用して、WS-Federation 1.1のパートナを作成できます。パートナの作成後、既存のWLST Identity Federationコマンドを使用してプロファイルを構成できます。詳細は、Oracle Fusion Middleware WebLogic Scripting Tool Identity and Access Managementコマンド・リファレンスを参照してください。
ノート:
WS-Federation 1.1パートナは、Oracle Access Managementコンソールを使用して部分的に管理できます。
29.7 Identity Federationの管理
Access Managerと統合されているIdentity Federationは、Oracle Access ManagementコンソールとOracle WebLogic Scripting Tool (WLST)コマンドを使用して、各種構成の組合せとともに管理できます。
Oracle Access Managementコンソールを使用すると、Identity Federationサービスを有効にしたり、IdPおよびSPのパートナ・プロファイルを管理したり、フェデレーテッド認証スキームおよびポリシーに対する作業を実行できます。WLSTユーティリティを使用すると、追加のサーバーおよびパートナの構成プロパティを管理できます。
ノート:
すべてのWLSTコマンド機能に対応する機能がOracle Access Managementコンソールにあるわけではなく、また、すべてのコンソール機能に対応する機能がコマンド行に実装されているわけではありません。
管理者はOracle Access Managementコンソールを使用して、フェデレーション・サービスとパートナに関連する構成を管理できます。表29-9に、Oracle Access Managementコンソールを使用してIdentity Federationについて構成できる情報の種類をまとめます。
表29-9 Identity Federation設定の構成
構成対象 | 説明 |
---|---|
フェデレーション管理者 |
フェデレーテッド・パートナおよび関連する構成を管理できる管理者。 |
フェデレーション・サービス |
Access ManagerのIdentity Federationサービスを有効または無効にします。「Identity Federationの有効化」を参照してください。 |
フェデレーション設定 |
基本的なIdentity Federationサービス構成プロパティの管理。「Identity Federationの設定管理」を参照してください。 |
フェデレーションで使用するプロバイダ |
IdPパートナはIdentity FederationをSPとして管理するコンテキスト内において管理されます。反対に、SPパートナは、Identity FederationをIdPとして管理するコンテキスト内において管理されます。「サービス・プロバイダとしてのIdentity Federationの管理」または「アイデンティティ・プロバイダとしてのIdentity Federationの管理」を参照してください。 |
フェデレーションの認証スキームおよび認証モジュール |
フェデレーションの認証スキームの管理。「Identity Federationの認証スキームおよび認証モジュールの使用」を参照してください。 |
フェデレーションで使用するポリシー |
フェデレーション・パートナに使用するポリシーの管理。「Identity Federationで使用するAccess Managerのポリシーの管理」を参照してください。 |
Oracle Access Managementコンソールを使用してアイデンティティ・フェデレーションを実装する際に必要なタスクの概要を表29-10に示します。
表29-10 Identity Federationの実装
タスク | 参照先 |
---|---|
Identity Federationサービスを有効にします。 |
|
フェデレーション設定を構成します。 |
|
IdPパートナまたはSPパートナを識別し、それらに対する属性を構成します。 |
|
認証または認可ポリシーを構成します。 |
|
このポリシーでリソースを保護します。 |
29.8 Identity Federationの有効化
Identity Federationは、Oracle Access Managementにおける認証モジュールなので、Access ManagerサービスとIdentity Federationの両方を有効にしておく必要があります。
図29-1は、Access ManagerサービスとIdentity Federationが有効になっているOracle Access Managementコンソールの「使用可能なサービス」ページを示しています。このページを使用して、Identity FederationとAccess Managerサービスを有効(または無効)にします。
ノート:
有効であれば、IdP、SP、属性認証局、属性リクエスタなどのフェデレーション機能を個々に有効または無効にできます。『Oracle Fusion Middleware WebLogic Scripting Tool Identity and Access Managementコマンド・リファレンス』の説明に従ってconfigureFederationService()
コマンドを使用します。
Access ManagerでIdentity Federationサービスを管理する手順