OpenSearchを使用した検索でのSAML認証
OpenSearchでのSAML認証OCI検索の使用について学習します。
OpenSearchを使用したOCI検索では、OpenSearchクラスタおよびOpenSearchダッシュボードへのアクセスおよび制御にアイデンティティ・プロバイダの使用がサポートされます。これは、OpenSearchセキュリティ・プラグインのSAMLシングル・サインオン・サポートを介して使用できます。
SAML統合では、SAMLサービス・プロバイダがアイデンティティ・プロバイダに接続してユーザーを認証し、認証トークンをOCI OpenSearchに渡してOpenSearchクラスタおよびOpenSearchダッシュボードにアクセスできるように、クラスタを構成できます。OpenSearchダッシュボードにアクセスするときに、ユーザーが認証のためにアイデンティティ・プロバイダのサインイン・ページにリダイレクトされるように、OpenSearchダッシュボードを構成することもできます。
次の表に、OpenSearchを使用した検索に適用可能なSAML構成設定を示します。
SAML構成 |
内容 |
フィールドまたは属性名 |
---|---|---|
SAMLメタデータ | アイデンティティ・プロバイダの機能および構成を記述するメタデータ・ファイル。必須です。 |
|
アイデンティティID | アイデンティティ・プロバイダの名前。必須です。 |
|
OpenSearchダッシュボードURL | クラスタのOpenSearchダッシュボードのURL。オプションです。 |
|
管理バックエンド・ロール |
クラスタに対する完全な管理者権限を持つユーザーのアイデンティティ・プロバイダのバックエンド・ロール。オプションです。 |
|
サブジェクト・キー |
アイデンティティ・プロバイダがユーザー |
|
ロール・キー | バックエンド・ロールを使用している場合は、ユーザー・ロールを含むSAMLレスポンスの要素名を指定します。オプションです |
|
制限事項および考慮事項
-
OpenSearchを使用した検索では、コンソールでの既存のクラスタに対するSAML認証の有効化のみがサポートされます。コンソールで新しいクラスタを作成するときにSAML認証を有効にすることはできません。CLIまたはAPIを使用して新しいOpenSearchクラスタを作成するときにSAML認証を有効にできます。
新しいクラスタを作成し、CLIまたはAPIを使用してSAML認証を有効にする場合は、セキュリティ・モードを強制するように設定して、クラスタのロールベースのアクセス制御も有効にする必要があります。
前提条件
- 既存のアイデンティティ・プロバイダ。
- コンソールの場合のみ、既存のOpenSearchクラスタを作成する必要があります。
コンソールでは、既存のクラスタに対してのみSAMLを有効にできます。
-
ナビゲーション・メニューを開き、「データベース」をクリックします。OpenSearchで、「クラスタ」をクリックします。
-
「クラスタ」リストで、SAMLを有効にするクラスタの名前をクリックします。
-
クラスタの詳細ページで、「その他のアクション」をクリックし、「SAML認証の追加」を選択します。
-
「メタデータ・コンテンツ」フィールドに、アイデンティティ・プロバイダのSAMLメタデータ・ファイルのコンテンツを貼り付けます。
SAMLメタデータ・ファイルには、アイデンティティ・プロバイダの機能と構成が記述されます。これには、アイデンティティ・プロバイダの証明書が含まれます。
-
「アイデンティティID」にアイデンティティ・プロバイダの名前を指定します。
-
オプションで、次の構成の詳細を指定できます。
- ダッシュボードURL: クラスタのOpenSearch.Dashboard URL。
- 管理バックエンド・ロール: OpenSearchクラスタの管理者権限を持つユーザーのアイデンティティ・プロバイダのバックエンド・ロール。
- ロール・キー: ユーザー・ロールを含むSAMLレスポンスの属性を指定します。
- サブジェクト・キー: ユーザーを含むSAMLレスポンスの属性を指定します。
- 「変更の保存」をクリックします。
-
- CLIの使用の詳細は、コマンドライン・インタフェース(CLI)を参照してください。CLIコマンドで使用できるフラグおよびオプションの完全なリストは、CLIコマンド・リファレンスを参照してください。
クラスタ作成時のSAMLの有効化
CLIの clusterオブジェクトに対して createコマンドを使用してクラスタを作成するときに、SAML認証を有効にできます。createコマンドの必須パラメータに加えて、次のパラメータも含める必要があります。
security-mode
、security-master-user-name
、security-master-user-password-hash
などのロールベースのアクセス制御パラメータ。security-mode
パラメータをENFORCING
に設定する必要があります。SAML構成を含む
securitySamlConfig
パラメータ。次に、このパラメータのSAML構成を使用したJSONの例を示します。{ "isEnabled": true, "idpEntityId": "<identity_provider_name>", "idpMetadataContent": "xml content" "opendashboardUrl": "https://localhost:5601", "adminBackendRole": "<admin_role_name>", "subjectKey": "<NameID>", "rolesKey": "<group_name>" }
前述のサンプルには使用可能なすべてのSAML構成フィールドが含まれていますが、
isEnabled
、idpEntityId
およびidpMetadataContent
フィールドのみが必要です。
create
コマンドの例:oci opensearch cluster create --compartment-id <compartment_ocid> --securitySamlConfig <SAML_Config_JSON> --security-mode ENFORCING --security-master-user-name <username> --security-master-user-password-hash <password> ...remaining required fields
クラスタの更新時のSAMLの有効化
CLIでclusterオブジェクトに対してupdateコマンドを使用してクラスタを更新するときに、既存のクラスタのSAML認証を有効にできます。
securitySamlConfig
パラメータをupdateコマンドに含める必要があります。このパラメータに指定する内容の例は、前の項のSAML構成JSONを参照してください。update
コマンドの例:oci opensearch cluster update --display-name<cluster_name> --opensearch-cluster-id <cluster_ocid --securitySamlConfig <SAML_Config_JSON>
ロールベースのアクセス制御がクラスタに対して有効になっていない場合は、
security-mode
、security-master-user-name
およびsecurity-master-user-password-hash
パラメータも含めることで有効にする必要があります。security-mode
パラメータをENFORCING
に設定する必要があります。 クラスタ作成時のSAMLの有効化
CreateOpensearchCluster操作を使用してクラスタを作成するときに、SAML認証を有効にできます。次の例に示すように、新しい
securitySamlConfig
属性を使用して、CreateOpensearchClusterDetailsにSAML構成の詳細を渡します。POST https://opensearch.us-ashburn-1.oci.oraclecloud.com/20180828/opensearchClusters/ { ... "securitySamlConfig": { "isEnabled": true, "idpEntityId": "<identity_provider_name>", "idpMetadataContent": "xml content" "opendashboardUrl": "https://localhost:5601", "adminBackendRole": "<admin_role_name>", "subjectKey": "<NameID>", "rolesKey": "<group_name>" }, ... }
クラスタの更新時のSAMLの有効化
UpdateOpensearchCluster操作を使用してクラスタを更新するときに、既存のクラスタのSAML認証を有効にできます。次の例に示すように、新しい
securitySamlConfig
属性を使用して、UpdateOpensearchClusterDetailsにSAML構成の詳細を渡します。PUT https://opensearch.us-ashburn-1.oci.oraclecloud.com/20180828/opensearchClusters/ocid1.opensearchcluster.oc1.<unique_ID> { ... "securitySamlConfig": { "isEnabled": true, "idpEntityId": "<identity_provider_name>", "idpMetadataContent": "xml content" "opendashboardUrl": "https://localhost:5601", "adminBackendRole": "<admin_role_name>", "subjectKey": "<NameID>", "rolesKey": "<group_name>" }, ... }