ID プロバイダに接続する

このページでは、Google Distributed Cloud(GDC)エアギャップを組織の既存の ID プロバイダ(IdP)に接続する方法について説明します。IdP は、ユーザー ID を一元的に管理して保護し、認証サービスを提供するシステムです。既存の IdP に接続すると、ユーザーは組織の認証情報を使用して GDC にアクセスできます。GDC 内で別のアカウントを作成または管理する必要はありません。このプロセスにより、シームレスで安全なログイン エクスペリエンスが実現します。IdP はグローバル リソースであるため、ユーザーは作業するゾーンに関係なく、同じ IdP を介して GDC にアクセスできます。

このページは、IdP に接続する IT 管理者やセキュリティ エンジニアなど、プラットフォーム管理者グループ内のユーザーを対象としています。詳細については、GDC のエアギャップ環境のユーザー グループのドキュメントをご覧ください。

次のいずれかを使用して、既存の ID プロバイダに接続できます。

始める前に

既存の ID プロバイダに接続する前に、初期設定が完了し、必要な権限があることを確認してください。

ID プロバイダ接続の初期設定

ユーザーが GDC クラスタまたはダッシュボードにアクセスするには、組織のインフラストラクチャ オペレーター グループのメンバーが最初の IdP 接続を構成する必要があります。

これを行うには、チケット発行システムでチケットを開き、ID プロバイダに関する次の情報を提供します。

  • サーバーの数とタイプ。
  • ブロック ストレージの容量(TB 単位)。
  • オブジェクト ストレージの容量(TB 単位)。
  • OIDC の必須パラメータ:
    • clientID: OpenID プロバイダに認証リクエストを行うクライアント アプリケーションの ID。
    • clientSecret: アプリケーションと OpenID プロバイダのみが知っているシークレット。
    • issuerURL: OpenID プロバイダの認可リクエストが送信される URL。
    • scopes: OpenID プロバイダに送信する追加のスコープ。
    • userclaim: ユーザー名として使用する JSON ウェブトークン(JWT)クレーム。
    • certificateAuthorityData: OIDC プロバイダの PEM エンコード証明書の Base64 でエンコードされた文字列。
  • SAML プロバイダの必須パラメータ:
    • idpCertificateDataList: SAML レスポンスを検証するための IdP 証明書。これらの証明書は標準の Base64 エンコード形式と PEM 形式にする必要があります。IdP 証明書のローテーションを容易にするため、サポートされる証明書は 2 つまでです。
    • idpEntityID: SAML プロバイダの SAML エンティティ ID(URI 形式で指定)。例: https://www.idp.com/saml
    • idpSingleSignOnURI: SAML プロバイダの SSO エンドポイントの URI。例: https://www.idp.com/saml/sso
  • 初期管理者のユーザー名またはユーザー名のグループ。

必要な権限

既存の ID プロバイダを接続するために必要な権限を取得するには、次の操作を行います。

  • 組織の IAM 管理者に、IdP 連携管理者(idp-federation-admin)ロールの付与を依頼します。
  • ID プロバイダの接続時に指定する初期管理者に、組織 IAM 管理者(organization-iam-admin)ロールがあることを確認します。

既存の ID プロバイダに接続する

ID プロバイダを接続するには、ID プロバイダから 1 つのクライアント ID とシークレットが必要です。既存の OIDC プロバイダまたは SAML プロバイダに接続できます。

既存の OIDC プロバイダに接続する

既存の OIDC プロバイダに接続する手順は次のとおりです。

コンソール

  1. GDC コンソールにログインします。次の例は、org-1 という組織にログインした後のコンソールを示しています。 一般的なタスクへのクイック アクセス リンクが記載されたコンソールのウェルカム ページ
  2. ナビゲーション メニューで、[ID とアクセス > ID] をクリックします。
  3. [ID プロバイダを追加] をクリックします。
  4. [ID プロバイダの構成] セクションで、次の操作を行います。

    1. [ID プロバイダ] プルダウン メニューで、[Open ID Connect(OIDC)] を選択します。
    2. ID プロバイダ名を入力します。
    3. [発行元 URI] フィールドに、ID プロバイダに認可リクエストが送信される URL を入力します。Kubernetes API サーバーは、この URL を使用してトークン検証用の公開鍵を検出します。URL には HTTPS を使用する必要があります。
    4. [クライアント ID] フィールドに、ID プロバイダへの認証リクエストを行うクライアント アプリケーションの ID を入力します。
    5. [クライアント シークレット] フィールドに、ID プロバイダと Distributed Cloud 間の共有シークレットであるクライアント シークレットを入力します。
    6. 省略可: [ID プロバイダの接頭辞] フィールドに接頭辞を入力します。この接頭辞は、ユーザー クレームとグループ クレームの先頭に追加されます。接頭辞は、異なる ID プロバイダ構成を区別するために使用されます。たとえば、接頭辞を myidp に設定した場合、ユーザー クレームは myid-pusername@example.com、グループ クレームは myid-pgroup@example.com になる可能性があります。ロールベースのアクセス制御(RBAC)権限をグループに割り当てるときは、接頭辞も含める必要があります。

    7. 省略可: [暗号化] セクションで、[暗号化トークンを有効にする] を選択します。

      暗号化トークンを有効にするには、組織の IAM 管理者に IdP 連携管理者(idp-federation-admin)ロールの付与を依頼してください。

      1. [キー ID] フィールドにキー ID を入力します。鍵 ID は、JSON ウェブ暗号化(JWE)トークンの公開鍵を識別します。OIDC プロバイダがキー ID を設定してプロビジョニングします。
      2. [復号鍵] フィールドに、PEM 形式の復号鍵を入力します。復号鍵は、トークンの復号に使用される非対称鍵です。OIDC プロバイダが復号鍵を設定してプロビジョニングします。
    8. [次へ] をクリックします。

  5. [属性を構成する] セクションで、次の操作を行います。

    1. [OIDC プロバイダの認証局] フィールドに、ID プロバイダの Base64 でエンコードされた PEM エンコード証明書を入力します。詳しくは、Wikipedia のプライバシー強化メールをご覧ください。
      1. 文字列を作成するには、ヘッダーを含めた証明書を base64 でエンコードします。
      2. 結果の文字列は 1 行で含めます。例: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tC...k1JSUN2RENDQWFT==
    2. [グループ クレーム] フィールドに、ユーザーのグループ情報を保持する ID プロバイダ トークンのクレームの名前を入力します。
    3. [ユーザー クレーム] フィールドに、各ユーザーを識別するためのクレームを入力します。多くのプロバイダのデフォルトのクレームは sub です。ID プロバイダによっては、emailname などの他のクレームを選択できます。名前が競合しないように、email 以外のクレームには、発行元の URL が先頭に付加されます。
    4. 省略可: [カスタム属性] セクションで [ペアを追加] をクリックし、ユーザーの部門やプロフィール写真の URL など、ユーザーに関する追加のクレームの Key-Value ペアを入力します。
    5. ID プロバイダで追加のスコープが必要な場合は、[スコープ] フィールドに、ID プロバイダに送信するカンマ区切りのスコープを入力します。
    6. [追加パラメータ] セクションに、ID プロバイダが必要とする追加の Key-Value ペア(カンマ区切り)を入力します。グループを承認する場合は、resource=token-groups-claim を渡します。
    7. [次へ] をクリックします。
  6. [最初の管理者指定] セクションで、次の操作を行います。

    1. 個々のユーザーまたはグループを初期管理者として追加するかどうかを選択します。
    2. [ユーザー名またはグループ エイリアス] フィールドに、組織にアクセスするユーザーまたはグループのメールアドレスを入力します。管理者の場合は、メールアドレス(例: kiran@example.com)を入力します。接頭辞は、myidp-kiran@example.com のようにユーザー名の前に追加されます。
    3. [次へ] をクリックします。
  7. 選択内容を確認し、[設定] をクリックします。

新しい ID プロバイダ プロファイルが [ID プロファイル] リストに表示されます。

API

ID プロバイダを組織に接続するには、グローバル IdentityProviderConfig カスタム リソースを作成します。

  1. pa-idp-oidc.yaml などの IdentityProviderConfig カスタム リソース YAML ファイルを作成します。

    apiVersion: iam.global.gdc.goog/v1
    kind: IdentityProviderConfig
    metadata:
      name: pa-idp-oidc
      namespace: platform
    spec:
      oidc:
        certificateAuthorityData: "IDP_BASE64_ENCODED_CERTIFICATE"
        clientID: IDP_CLIENT_ID
        clientSecret: IDP_CLIENT_SECRET
        groupPrefix: IDP_GROUP_PREFIX
        groupsClaim: IDP_GROUP_CLAIM
        issuerURI: IDP_ISSUER_URI
        scopes: openid email profile
        userClaim: IDP_USER_CLAIM
        userPrefix: IDP_USER_PREFIX
    

    次の変数を置き換えます。

    • IDP_BASE64_ENCODED_CERTIFICATE: IdP の Base64 エンコード証明書。
    • IDP_CLIENT_ID: IdP のクライアント ID。
    • IDP_CLIENT_SECRET: IdP のクライアント シークレット。
    • IDP_GROUP_PREFIX: IdP のグループの接頭辞。
    • IDP_GROUP_CLAIM: 情報をグループ化する IdP トークンのクレームの名前。
    • IDP_ISSUER_URI: IdP の発行者 URI。
    • IDP_USER_CLAIM: ユーザーの IdP トークンのクレームの名前。
    • IDP_USER_PREFIX: ユーザー IdP の接頭辞。
  2. IdentityProviderConfig カスタム リソースをグローバル API サーバーに適用します。

    kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG apply -f pa-idp-oidc.yaml
    

    GLOBAL_API_SERVER_KUBECONFIG 変数を、グローバル API サーバーの kubeconfig ファイルへのパスに置き換えます。

既存の SAML プロバイダに接続する

既存の SAML プロバイダに接続する手順は次のとおりです。

コンソール

  1. GDC コンソールにログインします。次の例は、org-1 という組織にログインした後のコンソールを示しています。 一般的なタスクへのクイック アクセス リンクが記載されたコンソールのウェルカム ページ
  2. ナビゲーション メニューで、[ID とアクセス > ID] をクリックします。
  3. [ID プロバイダを追加] をクリックします。
  4. [ID プロバイダの構成] セクションで、次の操作を行います。

    1. [ID プロバイダ] プルダウン メニューで、[Security Assertion Markup Language(SAML)] を選択します。
    2. ID プロバイダ名を入力します。
    3. [Identity ID] フィールドに、ID プロバイダに認証リクエストを行うクライアント アプリケーションの ID を入力します。
    4. [SSO URI] フィールドに、プロバイダのシングル サインオン エンドポイントの URL を入力します。例: https://www.idp.com/saml/sso
    5. [Identity provider prefix] フィールドに接頭辞を入力します。この接頭辞は、ユーザーとグループのクレームの先頭に追加されます。接頭辞は、異なる ID プロバイダ構成を区別するために使用されます。たとえば、接頭辞を myidp に設定すると、ユーザー クレームは myidp-username@example.com と表示され、グループ クレームは myidp-group@example.com と表示されることがあります。RBAC 権限をグループに割り当てるときは、接頭辞も含める必要があります。

    6. セキュリティを強化するには、有効期間が 5 ~ 10 分のアサーションを発行するように SAML プロバイダを構成します。この設定は、SAML プロバイダの設定で構成できます。

    7. 省略可: [SAML Assertions] セクションで、[Enable encryption SAML assertions] を選択します。

      暗号化された SAML アサーションを有効にするには、組織の IAM 管理者に IdP 連携管理者(idp-federation-admin)ロールの付与を依頼します。

      1. [Encryption assertion certificate] フィールドに、PEM 形式の暗号化証明書を入力します。暗号化証明書は SAML プロバイダから取得します。
      2. [Encryption assertion key] フィールドに、秘密鍵を入力します。復号鍵は、SAML プロバイダの生成後に受け取ります。
    8. 省略可: [SAML Signed Requests] セクションで、[Enable signed SAML requests] を選択します。

      1. [署名証明書] フィールドに、PEM ファイル形式の署名証明書を入力します。SAML プロバイダが署名証明書を発行します。
      2. [署名鍵] フィールドに、PEM ファイル形式の署名鍵を入力します。SAML プロバイダが署名鍵を設定して生成します。
    9. [次へ] をクリックします。

  5. [属性を構成する] ページで、次の操作を行います。

    1. [IDP certificate] フィールドに、ID プロバイダの base64 でエンコードされた PEM エンコード証明書を入力します。詳しくは、Wikipedia のプライバシー強化メールをご覧ください。
      1. 文字列を作成するには、ヘッダーを含めた証明書を base64 でエンコードします。
      2. 結果の文字列は 1 行で含めます。例: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tC...k1JSUN2RENDQWFT==
    2. 追加の証明書がある場合は、[Additional IDP certificate] フィールドに入力します。
    3. [ユーザー属性] フィールドに、各ユーザーを識別する属性を入力します。多くのプロバイダのデフォルトの属性は sub です。ID プロバイダによっては、emailname などの他の属性を選択できます。名前が競合しないように、email 以外の属性には発行元の URL が先頭に付加されます。
    4. [グループ属性] フィールドに、ユーザーのグループ情報を保持する ID プロバイダ トークンの属性の名前を入力します。
    5. 省略可: [属性のマッピング] セクションで、[ペアを追加] をクリックし、ユーザーの追加属性(部署やプロフィール写真の URL など)の Key-Value ペアを入力します。
    6. [次へ] をクリックします。
  6. [最初の管理者指定] セクションで、次の操作を行います。

    1. 個々のユーザーまたはグループを初期管理者として追加するかどうかを選択します。
    2. [ユーザー名またはグループ エイリアス] フィールドに、組織にアクセスするユーザーまたはグループのメールアドレスを入力します。管理者の場合は、メールアドレス(例: kiran@example.com)を入力します。接頭辞は、myidp-kiran@example.com のようにユーザー名の前に付加されます。
    3. [次へ] をクリックします。
  7. [Review] ページで、続行する前に各 ID 構成のすべての値を確認します。

    [戻る] をクリックして前のページに戻り、必要な修正を行います。

  8. [Setup] をクリックします。

新しい ID プロバイダ プロファイルが [ID プロファイル] リストに表示されます。

API

ID プロバイダを組織に接続するには、グローバル IdentityProviderConfig カスタム リソースを作成します。

  1. pa-idp-saml.yaml などの IdentityProviderConfig カスタム リソース YAML ファイルを作成します。

    apiVersion: iam.global.gdc.goog/v1
    kind: IdentityProviderConfig
    metadata:
      name: pa-idp-saml
      namespace: platform
    spec:
      saml:
        groupPrefix: IDP_GROUP_PREFIX
        groupsAttribute: IDP_GROUP_ATTRIBUTE
        idpCertificateDataList:
        - "IDP_BASE64_ENCODED_CERTIFICATE"
        idpEntityID: IDP_SAML_ENTITY_ID
        idpSingleSignOnURI: IDP_SAML_SSO_URI
        userAttribute: IDP_USER_ATTRIBUTE
        userPrefix: IDP_USER_PREFIX
    

    次の変数を置き換えます。

    • IDP_GROUP_PREFIX: IdP のグループの接頭辞。
    • IDP_GROUP_ATTRIBUTE: IdP のグループの属性。
    • IDP_BASE64_ENCODED_CERTIFICATE: IdP の Base64 エンコード証明書。
    • IDP_SAML_ENTITY_ID: IdP を一意に識別するための URL または URI。
    • IDP_SAML_SSO_URI: IdP の発行者 URI。
    • IDP_USER_ATTRIBUTE: IdP ユーザーの属性(メールなど)。
    • IDP_USER_PREFIX: ユーザーの IdP トークンのクレームの名前。
  2. IdentityProviderConfig カスタム リソースをグローバル API サーバーに適用します。

    kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG apply -f pa-idp-saml.yaml
    

    GLOBAL_API_SERVER_KUBECONFIG 変数を、グローバル API サーバーの kubeconfig ファイルへのパスに置き換えます。

既存の ID プロバイダを削除する

GDC コンソールを使用して既存の ID プロバイダを削除します。

  1. GDC コンソールにログインします。
  2. プロジェクト セレクタで、ID プロバイダを削除する組織を選択します。
  3. ナビゲーション メニューで、[ID とアクセス > ID] をクリックします。
  4. 1 つ以上の ID プロバイダの名前の横にあるチェックボックスをオンにします。

    選択した ID プロバイダの数と [削除] ボタンを含むメッセージが表示されます。

  5. [削除] をクリックします。