Active Directory フェデレーション サービスの構成
このトピックの内容
- 必要な情報
AD FS をエンタープライズ ID プロバイダーとして Portal for ArcGIS で登録する Portal for ArcGIS を信頼できるサービス プロバイダーとして AD FS に登録する - IDP が開始するログイン
Microsoft Windows Server オペレーティング システムで、Active Directory フェデレーション サービス (AD FS) 2.0以降のバージョンを Portal for ArcGIS でのエンタープライズ ログイン用 ID プロバイダーとして構成することができます。構成プロセスでは、主に次の 2 つの手順を実行します。まず、エンタープライズ ID プロバイダーを Portal for ArcGIS に登録し、次に、Portal for ArcGIS をエンタープライズ ID プロバイダーに登録します。
または、Windows Active Directory でエンタープライズ グループに関するポータルにメタデータを提供することもできます。これにより、ポータルに、アイデンティティ ストア内の既存のエンタープライズ グループを利用するグループを作成することができます。メンバーがポータルにログインすると、コンテンツ、アイテムおよびデータへのアクセスは、エンタープライズ グループで定義されているメンバーシップ ルールで管理されます。必要なエンタープライズ グループ メタデータを指定しなくても、グループは作成できます。しかし、メンバーシップ ルールは Windows Active Directory ではなく、Portal for ArcGIS で管理されます。
必要な情報
Portal for ArcGIS は、ユーザーがエンタープライズ ログインを使用してログインするときに、特定の属性情報を ID プロバイダーから受信する必要があります。NameID は、Portal for ArcGIS とのフェデレーションが機能するように、ID プロバイダーが SAML レスポンスで送信する必要のある必須の属性です。IDP からユーザーがログインすると、Portal for ArcGIS によってユーザー名が NameID の新しいユーザーがユーザー ストアに作成されます。NameID 属性によって送信される値に使用できる文字は、英数字、_ (アンダースコア)、 . (ドット) および @ (アット マーク) です。その他の文字はエスケープされ、Portal for ArcGIS によってアンダースコアが付加されたユーザー名が作成されます。
Portal for ArcGIS は、エンタープライズ ログイン アカウントの givenName 属性と email address 属性を、エンタープライズ ID プロバイダーから取得して入力することをサポートしています。ユーザーがエンタープライズ ログイン アカウントを使用してサイン インし、Portal for ArcGIS が givenname と email または mail という名前の属性を取得した場合、Portal for ArcGIS はユーザー アカウントのフル ネームと電子メール アドレスに ID プロバイダーから取得した値を入力します。ユーザーが通知を受信できるようにするために、エンタープライズ ID プロバイダーから取得した email address を渡すことをお勧めします。
AD FS をエンタープライズ ID プロバイダーとして Portal for ArcGIS で登録する
- 組織サイトの管理者としてポータル Web サイトにサイン インし、[組織] > [サイト設定] > [セキュリティ] の順にクリックします。
- [エンタープライズ ログイン] セクションで、[ID プロバイダーの設定] ボタンをクリックし、表示されたウィンドウに組織名 (たとえば、「City of Redlands」) を入力します。ユーザーがポータル Web サイトにアクセスすると、このテキストが SAML サイン イン オプションの一部に表示されます (たとえば、「City of Redlands アカウントを使用」)。
- ユーザーが [自動] または [アカウントをポータルに追加した後] のどちらで組織に加入できるかを選択します。1 番目のオプションを選択すると、ユーザーは、管理者から招待されなくても、自分のエンタープライズ ログインを使用して組織サイトにサイン インできます。ユーザーのアカウントは、最初にサイン インしたときに自動的に組織サイトに登録されます。2 番目のオプションを選択すると、管理者は、コマンド ライン ユーティリティまたはサンプル Python スクリプトを使用して必要なアカウントを組織サイトに登録する必要があります。ユーザーは、アカウントが登録された時点で、組織サイトにサイン インできるようになります。
ヒント:
少なくとも 1 つのエンタープライズ アカウントをポータルの管理者として指定し、最初の管理者アカウントを降格するか削除することをお勧めします。また、[アカウントの作成] ボタンと、ポータル Web サイトのサインアップ ページ (signup.html) を無効化することで、ユーザーが自分のアカウントを作成できないようにしておくこともお勧めします。詳細な手順については、「ポータルでの SAML 準拠のアイデンティティ プロバイダーの構成」をご参照ください。
- 以下の 3 つのオプションのいずれかを使用して、ID プロバイダーのメタデータ情報を入力します。
- URL - AD FS フェデレーション メタデータの URL にアクセスできる場合は、このオプションを選択して URL (たとえば、https://<adfs-server>/federationmetadata/2007-06/federationmetadata.xml) を入力します。
注意:
エンタープライズ ID プロバイダーに自己署名証明書が含まれている場合、メタデータの HTTPS URL を指定しようとしたときに、エラーが発生することがあります。このエラーは、Portal for ArcGIS が ID プロバイダーの自己署名証明書を確認できないために発生します。 代わりに、URL内で HTTP を使用するか、下記の他のオプションのいずれかを使用するか、信頼できる証明書を使用して ID プロバイダーを構成してください。
- [ファイル] - URL にアクセスできない場合は、このオプションを選択します。AD FS からフェデレーション メタデータ ファイルのコピーをダウンロードまたは取得し、[ファイル] オプションを使用して、そのファイルを Portal for ArcGIS にアップロードします。
- [パラメーター] - URL にもフェデレーション メタデータ ファイルにもアクセスできない場合は、このオプションを選択します。値を手動で入力して、要求されたパラメーター (ログイン URL および証明書) を指定します。これらの情報については、AD FS 管理者にお問い合わせください。
- URL - AD FS フェデレーション メタデータの URL にアクセスできる場合は、このオプションを選択して URL (たとえば、https://<adfs-server>/federationmetadata/2007-06/federationmetadata.xml) を入力します。
- 必要に応じて、Windows Active Directory でエンタープライズ グループに関するメタデータをポータルに提供します。
- 組織の管理者として ArcGIS Portal Directory にサイン インします。URL の形式は https://webadaptor.domain.com/arcgis/portaladmin です。
- [Security] > [Config] > [Update Identity Store] の順にクリックします。
- [Group store configuration (in JSON format)] テキスト ボックスにグループ構成の JSON を入力します。
次のテキスト ボックスをコピーして、サイト固有の情報を含むよう変更します。
{ "type": "LDAP", "properties": { "userPassword": "secret", "isPasswordEncrypted": "false", "user": "cn=aduser,ou=users,ou=ags,dc=example,dc=com", "ldapURLForUsers": "ldap://bar2:10389/ou=users\,ou=ags\,dc=example\,dc=com", "ldapURLForRoles": "ldap://bar2:10389/dc=example,dc=com", "usernameAttribute": "sAMAccountName", "caseSensitive": "false", "userSearchAttribute": "sAMAccountName", "memberAttributeInRoles": "member", "rolenameAttribute":"sAMAccountName" } }
ほとんどの場合、user、userPassword、および、ldapURLForUsers パラメーターの値を変更するだけで済みます。LDAP の URL は、AD 管理者が提供する必要があります。user パラメーターに使用するアカウントは、組織サイト内のグループ名を検索する権限を持つ必要があります。パスワードをプレーン テキストで入力しても、ポータルの構成ディレクトリに保存または表示される際には暗号化されます。
- ユーザー ストア構成に JSON を入力したら、[Update Configuration] をクリックして変更を保存し、ポータルを再起動します。
Portal for ArcGIS を信頼できるサービス プロバイダーとして AD FS に登録する
- AD FS 管理コンソールを開きます。
- [Relying Party Trusts] > [Add Relying Party Trust] の順に選択します。
- [Add Relying Party Trust Wizard] で、[Start] ボタンをクリックします。
- [Select Data Source] で、証明書利用者に関するデータを取得するためのオプション (URL からインポート、ファイルからインポート、手動入力) を選択します。URL およびファイルからインポートする場合は、組織のメタデータを取得する必要があります。メタデータ URL またはファイルにアクセスできない場合、手動で情報を入力できます。場合によっては、手動で入力する方法が最も簡単です。
- オンラインまたはローカル ネットワークで公開されている証明書利用者に関するデータのインポート
このオプションは、Portal for ArcGIS の組織サイトの URL メタデータを使用します。この URL は、https://webadaptor.domain.com/arcgis/sharing/rest/portals/self/sp/metadata?token=<token> (例: https://samltest.domain.com/arcgis/sharing/rest/portals/self/sp/metadata?token=G6943LMReKj_kqdAVrAiPbpRloAfE1fqp0eVAJ-IChQcV-kv3gW-gBAzWztBEdFY) です。https://webadaptor.domain.com/arcgis/sharing/rest/generateToken を使用して、トークンを生成できます。[Generate Token] ページに URL を入力する際には、[Webapp URL] フィールドで AD FS サーバーの完全修飾ドメイン名を指定します。[IP Address] や [IP Address of this request's origin] などのその他のオプションの選択はサポートされておらず、それらを選択すると無効なトークンが生成される場合があります。
注意:
上のサンプル URL の arcgis の部分は、Web アダプター アプリのデフォルト名です。Web アダプターの名前が arcgis 以外の場合は、URL のこの部分を使用している Web アダプターの名前に置き換えてください。
- 証明書利用者についてのデータをファイルからインポートする
このオプションは、Portal for ArcGIS の組織サイトにある metadata.xml ファイルを使用します。 メタデータの XML ファイルを取得するには、次の 2 つの方法があります。
- 組織サイトの [サイト設定] ページの [セキュリティ] セクションで、[サービス プロバイダーの取得] ボタンをクリックします。組織のメタデータが表示されるので、XML ファイルとしてコンピューターに保存できます。
- Portal for ArcGIS の組織サイトにあるメタデータの URL を開き、XML ファイルとしてコンピューターに保存します。この URL は、https://webadaptor.domain.com/arcgis/sharing/rest/portals/self/sp/metadata?token=<token> (例: https://samltest.domain.com/arcgis/sharing/rest/portals/self/sp/metadata?token=G6943LMReKj_kqdAVrAiPbpRloAfE1fqp0eVAJ-IChQcV-kv3gW-gBAzWztBEdFY) です。https://webadaptor.domain.com/arcgis/sharing/rest/generateToken を使用して、トークンを生成できます。[Generate Token] ページに URL を入力する際には、[Webapp URL] フィールドで AD FS サーバーの完全修飾ドメイン名を指定します。[IP Address] や [IP Address of this request's origin] などのその他のオプションの選択はサポートされておらず、それらを選択すると無効なトークンが生成される場合があります。
注意:
上のサンプル URL の arcgis の部分は、Web アダプター アプリのデフォルト名です。Web アダプターの名前が arcgis 以外の場合は、URL のこの部分を使用している Web アダプターの名前に置き換えてください。
- 証明書利用者についてのデータを手動で入力する
このオプションを使用すると、[Add Relying Party Trust Wizard] によって、データを手動で入力するためのウィンドウが表示されます。これについては、以下のステップ 6 〜 8 で説明します。
- オンラインまたはローカル ネットワークで公開されている証明書利用者に関するデータのインポート
- [Specify Display Name] に、表示名を入力します。
表示名は、AD FS 内で証明書利用者を識別するために使用されます。ADFS の外部では、識別されません。これには、ArcGIS または ArcGIS 内の組織名 (ArcGIS—SamlTest など) のいずれかを設定する必要があります。
ヒント:
上の画像は、URL またはファイルからデータ ソースをインポートする手順における [Specify Display Name] ウィンドウを示しています。データ ソース情報を手動で入力する場合、ウィザードの左側に追加手順が表示されます。これは、以下のステップ 6 〜 8 で説明します。URL またはファイルを選択した場合、ステップ 9 までスキップできます。
- (手動によるデータ ソースのみ) [Choose Profile] で、[AD FS 2.0 profile] (または、使用している環境に適用できる場合、これ以降のバーションの AD FS) を選択します。
- (手動によるデータ ソースのみ) [Configure URL] で、[Enable support for the SAML 2.0 WebSSO protocol] の横にあるチェックボックスをオンにして、証明書利用者の SAML 2.0 SSO サービスの URL を入力します。
証明書利用者の URL は、ユーザーを認証した後に AD FS が SAML レスポンスを送信する URL である必要があります。これは、HTTPS URL: https://webadaptor.domain.com/arcgis/sharing/rest/oauth2/saml/signin です。
注意:
上のサンプル URL の arcgis の部分は、Web アダプター アプリのデフォルト名です。Web アダプターの名前が arcgis 以外の場合は、URL のこの部分を使用している Web アダプターの名前に置き換えてください。
- (手動によるデータ ソースのみ) [Configure Identifiers] で、証明書利用者の信頼の識別子の URL を入力します。
これは、portal.domain.com.arcgis です。
- [Choose Issuance Authorization Rules] で、[Permit all users to access this relying party] を選択します。
ヒント:
上の画像は、URL またはファイルからデータ ソースをインポートする手順における [Choose Issuance Authorization Rules] ウィンドウを示しています。データ ソース情報を手動で入力する場合、ウィザードの左側に追加手順が表示されます。
- [Ready to Add Trust] で、証明書利用者のすべての設定を確認します。メタデータの URL は、URL からデータ ソースをインポートする場合のみ指定されます。下の画像は、データ ソース情報を手動で入力する場合の [Ready to Add Trust] ウィンドウを示しています。
[次へ] をクリックします。
ヒント:
[Monitor relying party] オプションを有効にすると、AD FS は、定期的にフェデレーション メタデータ URL をチェックし、それを証明書利用者の信頼の現在の状態と比較します。ただし、フェデレーション メタデータ URL 内のトークンの有効期限が切れると、この監視は失敗します。この失敗は、AD FS のイベント ログに記録されます。失敗に関するメッセージを抑制するには、監視を無効にするか、トークンを更新することをお勧めします。
- [Finish] のチェックボックスをオンにした場合、[Close] ボタンをクリックすると、[Edit Claim Rules] ダイアログ ボックスが自動的に開きます。
ヒント:
上の画像は、URL またはファイルからデータ ソースをインポートする手順における [Finish] ウィンドウを示しています。データ ソース情報を手動で入力する場合、ウィザードの左側に追加手順が表示されます。
- 要求規則を設定するには、[Edit Claim Rules] ウィザードを開いて、[Add Rule] をクリックします。
- [Select Rule Template] から、作成する要求規則の [Send LDAP Attributes as Claims] テンプレートを選択して、[Next] をクリックします。
- [Configure Claim Rule] で、規則の名前 (たとえば、「DefaultClaims」) を指定します。
- [Attribute store] で、[Active Directory] を選択します。
- [Mapping of LDAP attributes to outgoing claim types] で、[LDAP Attribute] にユーザー名を含む LDAP 属性 ([SAM-Account-Name] など)、[Outgoing Claim Type] に [NameID] を選択します。
注意:
[NameID] は、ArcGIS とのフェデレーションが機能するように、AD FS が SAML レスポンスで送信する必要のある属性です。IDP からユーザーがログインすると、Portal for ArcGIS によってユーザー名が NameID の新しいユーザーがユーザー ストアに作成されます。 NameID 属性によって送信される値に使用できる文字は、英数字、_ (アンダースコア)、 . (ドット) および @ (アット マーク) です。その他の文字はエスケープされ、Portal for ArcGIS によってアンダースコアが付加されたユーザー名が作成されます。
- Portal for ArcGIS は、エンタープライズ ログイン アカウントの givenName 属性と email address 属性を、エンタープライズ ID プロバイダーから取得して入力することをサポートしています。ユーザーがエンタープライズ ログイン アカウントを使用してサイン インし、Portal for ArcGIS が givenname と email または mail という名前の属性を取得した場合、Portal for ArcGIS はユーザー アカウントのフル ネームと電子メール アドレスに ID プロバイダーから取得した値を入力します。
要求規則を編集するには、次の手順を実行します。
- [LDAP Attribute] 列の下で、[DisplayName](または 2 行目のリストの別の属性) を選択し、それを [Outgoing Claim Type] 列の下の [Given Name] にマッピングします。
- [LDAP Attribute] 列の下から、[E·Mail-Addresses] を選択し、それを [Outgoing Claim Type] 列の下の [E·Mail Address] にマッピングします。
この規則の場合、AD FS は、ユーザーを認証した後、givenname および email という名前の属性を Portal for ArcGIS に送信します。次に Portal for ArcGIS は、givenname 属性および email 属性で受信した値を使用して、ユーザー アカウントのフル ネームおよび電子メール アドレスを入力します。
エンタープライズ ID プロバイダーから Portal for ArcGIS に電子メール アドレスを渡すことをお勧めします。 これは、ユーザーが後で管理者になる場合に便利です。アカウントに電子メール アドレスが登録されていると、管理アクティビティに関する通知を受信したり、他のユーザーが組織に加入できるように招待を送信したりできます。
- [Finish] をクリックすると、証明書利用者として Portal for ArcGIS を含めるように AD FS の ID プロバイダーを構成する手順が完了します。
IDP が開始するログイン
AD FS を組織サイトの ID プロバイダーとして構成したら、ID プロバイダー (IDP) が開始するエンタープライズ ログインを利用できます。AD FS および Portal for ArcGIS で IDP ログインを開始できるように、IDP ログインを有効にしておく必要があります。 IDP ログインを AD FS でまだ有効化していない場合は、以下の手順に従って有効化してください。Portal for ArcGIS は、デフォルトで IDP ログインをサポートしているため、Portal for ArcGIS で別途必要となる構成手順はなく、AD FS を構成するだけで済みます。
- AD FS 2.0 で Windows Server 2008 を使用している場合、AD FS 2.0 用の Update Rollup 2 パッチを Windows Server 2008 コンピューター上にインストールし、AD FS インスタンスを再起動していることを確認してください。Windows Server 2012 コンピューターには、デフォルトで Update Rollup 2 が含まれています。
- AD FS が RelayState ファイル内の web.config パラメーターを送信すできるようにします。このパラメーターは、ユーザーがサイン イン後にアクセスする特定のリソースを識別するために使用されます。
- web.config ファイルを開きます。デフォルトでは、このファイルは C:\inetpub\adfs\ls\ にあります。
- 以下のエントリを microsoft.identityServer.web ファイルの web.config セクションに追加します。
<microsoft.identityServer.web> ... <useRelayStateForIdpInitiatedSignOn enabled="true" /> </microsoft.identityServer.web>
- RelayState パラメーターを生成します。AD FS が RelayState を生成するには、以下の 2 つの情報が必要です。
- 証明書利用者 ID (RPID)。これは、AD FS で構成されている Portal for ArcGIS 組織サイトの証明書利用者 ID を示します。これを取得するには、Portal for ArcGIS の証明書利用者のプロパティを AD FS 管理コンソール (たとえば、webadaptor.domain.com) から開きます。
- RelayState。これは、ユーザーが AD FS サイトに正常にログインした後でリダイレクトされるポータルの URL です (たとえば、https://webadaptor.domain.com/arcgis/)。
- RPID と RelayState の値を定義して RelayState パラメーターを生成します。
- RPID と RelayState の値をエンコードします。以下に例を示します。
- RPID: webadaptor.domain.com.arcgis
- RelayState: https%3A%2F%2Fwebadaptor.domain.com%2Farcgis%2F
- 前のステップでエンコードした値を 1 つの文字列にマージします (たとえば、RPID=webadaptor.domain.com.arcgis&RelayState=https%3A%2F%2Fwebadaptor.domain.com%2Farcgis%2F)。
- マージした文字列をエンコードします (たとえば、RPID%3Dwebadaptor.domain.com.arcgis%26RelayState%3D%20https%253A%252F%252Fwebadaptor.domain.com%252Farcgis%252F)。
- RelayState パラメーターを文字列に追加し、その文字列を IDP が開始する AD FS の SSO URL に追加します (たとえば、https://idphost.test.com/adfs/ls/idpinitiatedsignon.aspx?RelayState=RPID%3Dwebadaptor.domain.com.arcgis%26RelayState%3D%20https%253A%252F%252Fwebadaptor.domain.com%252Farcgis%252F)。これは、AD FS サイトでのログインの開始に使用される URL です。
ユーザーがログインして正常に認証されると、AD FS は SAML レスポンスを生成し、組織サイトの URL を含む RelayState を Portal for ArcGIS に渡します。Portal for ArcGIS は、SAML レスポンスの整合チェックを実施した上で、ユーザーを組織サイトとそのリソースにリダイレクトします。