SAML (Security Assertion Markup Language) は、エンタープライズ ID プロバイダーとサービス プロバイダー (この場合は Portal for ArcGIS) との間で認証/認可データを安全に交換するためのオープン規格です。これを実現するための方法は、SAML Web シングル サインオンと呼ばれます。ポータル は SAML 2.0 に準拠し、SAML 2 Web シングル サイン オンをサポートする ID プロバイダーと一体化しています。SAML を設定するメリットは、ユーザーが Portal for ArcGIS にアクセスする際に追加のログイン アカウントを作成する必要がなくなるということです。代わりにユーザーは、エンタープライズ アイデンティティ ストア内ですでに設定されているログイン アカウントを使用します。この手順は、エンタープライズ ログイン アカウントの設定ドキュメントで説明されています。
必要に応じて、アイデンティティ ストア内のエンタープライズ グループに関するメタデータをポータルに提供することもできます。これにより、アイデンティティ ストア内の既存のエンタープライズ グループを利用する、ポータル内のグループを作成することができます。メンバーがポータルにログインすると、コンテンツ、アイテム、およびデータへのアクセスは、エンタープライズ グループで定義されているメンバーシップ ルールで管理されます。必要なエンタープライズ グループ メタデータを指定しなくても、グループは作成できます。ただし、メンバーシップ ルールはアイデンティティ ストアではなく、Portal for ArcGIS で管理されます。
SAML サイン イン操作
Portal for ArcGIS は、サービス プロバイダー (SP) が開始するエンタープライズ ログインと、ID プロバイダー (IDP) が開始するエンタープライズ ログインをサポートしています。これらのログイン操作は、それぞれ異なります。
サービス プロバイダーが開始するログイン
サービス プロバイダーが開始するログインでは、ユーザーがポータルに直接アクセスすると、(ポータルで管理されている)組み込みアカウントまたは SAML 準拠の ID プロバイダーで管理されているアカウントを使用してサイン インするオプションが表示されます。ユーザーは、SAML ID プロバイダー オプションを選択すると、Web ページ (エンタープライズのログイン マネージャーと呼ばれる) にリダイレクトされ、エンタープライズのユーザー名とパスワードを入力するよう求められます。ユーザーのログインの確認時に、エンタープライズ ID プロバイダーはログインしようとしているユーザーの確認済み ID を Portal for ArcGIS に通知し、ユーザーがポータルの Web サイトにもう一度リダイレクトされます。
ユーザーが組み込みアカウント オプションを選択した場合は、ポータルの Web サイトのサイン イン ページが表示されます。その後、ユーザーは、組み込みのユーザー名とパスワードを入力して Web サイトにアクセスできます。このオプションを無効にすることはできません。組み込みアカウント オプションは、SAML 準拠の ID プロバイダーが使用できない場合のフェイルセーフとして使用できます。
ID プロバイダーが開始するログイン
ID プロバイダーが開始するログインでは、ユーザーはエンタープライズのログイン マネージャーに直接アクセスし、自分のアカウントを使用してサイン インします。ユーザーが自分のアカウント情報を送信すると、ID プロバイダーは SAML レスポンスを直接 Portal for ArcGIS に送信します。その後、ユーザーはログインし、ポータルの Web サイトにリダイレクトされ、再び組織にサイン インしなくても直ちにリソースにアクセスできます。
組み込みアカウントを使用してサイン インするオプションは、エンタープライズのログイン マネージャーからは使用できません。組み込みアカウントを使用して組織サイトにサイン インするには、メンバーは、ポータルの Web サイトに直接アクセスする必要があります。
SAML ID プロバイダー
次のチュートリアルでは、SAML 準拠の ID プロバイダーを Portal for ArcGIS で使用する方法を示します。
上記の各リンクには、ID プロバイダーから必要なメタデータを取得する手順の説明があります。Portal for ArcGIS を使用して ID プロバイダーを構成する手順について以下で説明します。開始する前に、エンタープライズ ID プロバイダーの管理者に問い合わせて、構成に必要なパラメーターを取得することをお勧めします。
複数の SAML ID プロバイダーのサポート
SAML では、複数のアイデンティティ ストア ストアを使用したポータルへのアクセスを許可できます。これは、組織内外に存在する複数ユーザーを管理するのに役立ちます。
これを実行するには、ポータルで使用可能にしたいアイデンティティ ストア間の信頼を構築します。これは通常、セキュリティ管理者が行います。信頼は Portal for ArcGIS では構成されません。信頼関係を構築したら、信頼済みのアイデンティティ ストアの 1 つをポータルに構成するだけです (以下の説明を参照)。ユーザーがポータルのWeb サイトまたは ID プロバイダー サイトにアクセスすると、信頼済みの ID プロバイダーのいずれかで管理されるエンタープライズ アカウントを使用してサイン インするオプションが表示されます。
必要な情報
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 を渡すことをお勧めします。
SAML ID プロバイダーでのポータルの構成
- 組織サイトの管理者としてポータル Web サイトにサイン インし、[組織] > [サイト設定] > [セキュリティ] の順にクリックします。
- [エンタープライズ ログイン] セクションで、[ID プロバイダーの設定] ボタンをクリックし、表示されたウィンドウに組織名 (たとえば、「City of Redlands」) を入力します。ユーザーがポータル Web サイトにアクセスすると、このテキストが SAML サイン イン オプションの一部に表示されます (たとえば、City of Redlands アカウントを使用)。
- ユーザーが [自動] または [アカウントをポータルに追加した後] のどちらで組織に加入できるかを選択します。1 番目のオプションを選択すると、ユーザーは、管理者から招待されなくても、自分のエンタープライズ ログインを使用して組織サイトにサイン インできます。ユーザーのアカウントは、最初にサイン インしたときに自動的に組織サイトに登録されます。2 番目のオプションを選択すると、管理者は、コマンド ライン ユーティリティまたはサンプル Python スクリプトを使用して必要なアカウントを組織サイトに登録する必要があります。ユーザーは、アカウントが登録された時点で、組織サイトにサイン インできるようになります。
ヒント:
少なくとも 1 つのエンタープライズ アカウントをポータルの管理者として指定し、最初の管理者アカウントを降格するか削除することをお勧めします。また、[アカウントの作成] ボタンとポータル Web サイトのサインアップ ページ (signup.html) を無効化して、ユーザーが自分のアカウントを作成できないようにしておくこともお勧めします。手順については、下記の「エンタープライズ アカウントを管理者として指定」セクションをご参照ください。
- SAML 準拠のエンタープライズ ID プロバイダーに関する必要なメタデータ情報を指定します。これを実行するには、ポータルがアクセスしてメタデータ情報を取得するためのソースを指定します。認定プロバイダーからメタデータを取得する手順の詳細については、上記の「SAML ID プロバイダー」セクションをご参照ください。メタデータ情報のソースとして、次の 3 つを指定できます。
- URL - ID プロバイダーに関するメタデータ情報を返す URL を入力します。
注意:
エンタープライズ ID プロバイダーに自己署名証明書が含まれている場合、メタデータの HTTPS URL を指定しようとしたときに、エラーが発生することがあります。このエラーは、Portal for ArcGIS が ID プロバイダーの自己署名証明書を確認できないために発生します。代わりに、URL内で HTTP を使用するか、下記の他のオプションのいずれかを使用するか、信頼できる証明書を使用して ID プロバイダーを構成してください。
- ファイル - ID プロバイダーに関するメタデータ情報を含むファイルをアップロードします。
- パラメーター - 以下のパラメーターを指定することによって、ID プロバイダーに関するメタデータ情報を直接入力します。
- ログイン URL - ユーザーのサイン インを許可するために Portal for ArcGIS が使用する URL を入力します。
- 証明書 - エンタープライズ ID プロバイダーの X.509 証明書を入力します。この証明書を使用して、Portal for ArcGIS は、エンタープライズ ID プロバイダーから送信された SAML レスポンスのデジタル署名を確認することができます。
注意:
指定する必要のあるメタデータ情報のソースがわからない場合は、ID プロバイダーの管理者に問い合わせてください。
- URL - ID プロバイダーに関するメタデータ情報を返す URL を入力します。
- 構成手順を実行して ID プロバイダーとの信頼を構築するには、使用しているエンタープライズ ID プロバイダーにポータルのサービス プロバイダーのメタデータを登録します。ポータルからメタデータを取得する場合、2 つの方法があります。
- 組織サイトの [サイト設定] ページの [セキュリティ] セクションで、[サービス プロバイダーの取得] ボタンをクリックします。これにより、組織のメタデータが表示され、XML ファイルとしてコンピューターに保存できます。
- メタデータの 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] フィールドで、ID プロバイダー サーバーの完全修飾ドメイン名を指定します。[IP Address] や [IP Address of this request's origin] など、その他のオプションの選択はサポートされていません。これらのオプションを選択すると、無効なトークンが生成される場合があります。
認定プロバイダーにポータルのサービス プロバイダーのメタデータを登録する手順の詳細については、上記の「SAML ID プロバイダー」セクションをご参照ください。
- 必要に応じて高度な設定を構成します。
- 暗号化アサーション - ID プロバイダーの SAML アサーションの応答を暗号化する場合は、このオプションを選択します。
- 署名付きリクエストの有効化 - ID プロバイダーに送信される SAML の認証リクエストにPortal for ArcGIS が署名する場合は、このオプションを選択します。
- ログアウト URL - カスタムのログアウト URL を使用するように ID プロバイダーを構成している場合は、この値を更新します。
- エンティティ ID - 新しいエンティティ ID を使用してポータルを ID プロバイダーに対して一意に識別する場合は、この値を更新します。
[暗号化アサーション] 設定と [署名付きリクエストの有効化] 設定では、ポータル キーストア内の samlcert 証明書が使用されます。新しい証明書を使用するには、samlcert 証明書を削除してから、「ポータルへの証明書のインポート」に記載の手順に従って、同じエイリアス (samlcert) を使用して新しい証明書を作成し、ポータルを再起動します。
- 必要に応じて、アイデンティティ ストア内のエンタープライズ グループに関するメタデータをポータルに提供します。
- 組織の管理者として 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": "uid=admin\,ou=system", "ldapURLForUsers": "ldap://bar2:10389/ou=users\,ou=ags\,dc=example\,dc=com", "ldapURLForRoles": "ldap://bar2:10389/dc=example,dc=com", "usernameAttribute": "cn", "caseSensitive": "false", "userSearchAttribute": "cn", "memberAttributeInRoles": "member", "rolenameAttribute":"cn" } }
ほとんどの場合、user、userPassword、ldapURLForUsers、ldapURLForUsers の各パラメーターの値を変更するだけです。LDAP の URL は、LDAP 管理者が提供する必要があります。user パラメーターに使用するアカウントは、組織サイト内のグループ名を検索する権限を持つ必要があります。パスワードをプレーン テキストで入力しても、ポータルの構成ディレクトリに保存または表示される際には暗号化されます。
LDAP が大文字と小文字を区別するように構成されている場合は、caseSensitive パラメーターを false に設定します。
- ユーザー ストア構成に JSON を入力したら、[Update Configuration] をクリックして変更を保存し、ポータルを再起動します。
エンタープライズ アカウントを管理者として指定
エンタープライズ アカウントをポータルの管理者として指定する方法は、ユーザーが [自動] と [アカウントをポータルに追加した後] のどちらで組織に加入できるかによって決まります。
自動的に組織に加入する
ユーザーが自動的に組織に加入することを許可するオプション ([自動]) を選択した場合は、ポータル管理者として使用するエンタープライズ アカウントでログインして、ポータル Web サイトのホーム ページを開きます。
アカウントが最初に自動的にポータルに追加されるときに、ユーザー ロールが割り当てられます。アカウントのロールを変更できるのは、組織サイトの管理者のみです。そのため、初期管理者アカウントを使用してポータルにサイン インし、管理者ロールにエンタープライズ アカウントを割り当てる必要があります。
- ポータルの Web サイトを開き、SAML ID プロバイダーを使用してサイン インするオプションをクリックし、管理者として使用するエンタープライズ アカウントの認証情報を入力します。このアカウントが別のユーザーのアカウントである場合、そのユーザーにポータルにサイン インさせて、アカウントがポータルに登録されるようにします。
- アカウントがポータルに追加されたことを確認して、[サイン アウト] をクリックします。ブラウザーのキャッシュと cookie を消去します。
- ブラウザーを開いたまま、ポータルの Web サイトを開き、組み込みポータル アカウントを使用してサイン インするオプションをクリックし、Portal for ArcGIS を設定したときに作成した初期管理者アカウントの認証情報を入力します。
- ポータルの管理に使用するエンタープライズ アカウントを検索し、そのロールを [管理者] に変更します。[サイン アウト] をクリックします。
これで、選択したエンタープライズ アカウントがポータルの管理者になりました。
エンタープライズ アカウントをポータルに手動で追加する
アカウントをポータルに追加した後でのみユーザーが組織に加入することを許可するオプション ([アカウントをポータルに追加した後]) を選択した場合は、コマンド ライン ユーティリティまたはサンプル Python スクリプトを使用して、必要なアカウントを組織に登録する必要があります。ポータルの管理に使用するエンタープライズ アカウントに必ず [管理者] ロールを選択してください。
初期管理者アカウントの権限の降格または削除
代わりのポータル管理者アカウントができたため、初期管理者アカウントにユーザー ロールを割り当てたり、このアカウントを削除したりできます。詳細については、「初期管理者アカウントについて」をご参照ください。
ユーザーが自分のアカウントを作成できないようにする
ポータルへのアクセスのセキュリティを保護したら、ポータル Web サイトの [アカウントの作成] ボタンとサインアップ ページ (signup.html) を無効にして、ユーザーが自分のアカウントを作成できないようにすることをお勧めします。このようにすると、すべてのメンバーがエンタープライズ アカウントおよび認証情報を使用してポータルにサイン インするようになり、必要のない組み込みアカウントは作成できなくなります。詳細な手順については、「組み込みポータル アカウントを作成するユーザーの機能の無効化」をご参照ください。
ArcGIS アカウントを使用したサイン インの無効化
ユーザーが ArcGIS アカウントを使用してポータルにサイン インできないようにする場合は、サイン イン ページの [ArcGIS アカウントを使用しています] ボタンを無効化できます。そのための手順は次のとおりです。
- 位置を共有している ArcGIS Portal Directory を開き、管理権限を持つメンバーとしてログインします。URL の形式は https://webadaptor.domain.com/arcgis/sharing です。
- [Home] > [Portals] > [Self] の順に移動して、ページの最下部までスクロールします。[Update] をクリックします。
- [Can SignIn Using ArcGIS] オプションに移動します。このプロパティを [False] に設定します。
- [組織の更新] をクリックします。
サイン イン ページには、ID プロバイダー アカウントを使用してポータルにログインするためのボタンが表示され、[ArcGIS アカウントを使用しています] ボタンは使用不可になります。
SAML ID プロバイダーの変更
[ID プロバイダーの削除] ボタンを使用して、現在登録されている ID プロバイダーを削除できます。このボタンは、SAML 準拠の ID プロバイダーを設定した場合にのみ有効化されます。ID プロバイダーを削除したら、必要に応じて新しい ID プロバイダーを設定できます。