Snowflake Open Catalogを SSO を使用するように構成する

このトピックでは、SAML ベースの SSO を使用するようにSnowflake Open Catalogを構成する方法について説明します。

Snowflake Open Catalogを SSO を使用するように構成する前に、Open Catalog用に IdP を構成する必要があります。手順については、以下のトピックをご参照ください。

  • [OktaをOpen Catalog用の IdP として構成する](./sso-configure-idp.md#configure-okta)

  • [Auth0を Open Catalog用のIdpとして構成する](./sso-configure-idp.md#configure-auth0)

始める前に

SSO にSnowflake Open Catalogを設定するには、Snowflake組織名とOpen Catalogアカウント名を含む完全なOpen Catalogアカウント識別子が必要です。例: <orgname>.<my-snowflake-open-catalog-account-name>

  • Snowflake組織名(<orgname>)を見つけるには、 アカウントの組織名とアカウント名の検索 <https://docs.snowflake.com/en/user-guide/admin-account-identifier.html#label-account-name-find>_をご参照ください。

  • Snowflake Open Catalog アカウント名(<my-snowflake-open-catalog-account-name>)を見つけるには、:doc:/user-guide/opencatalog/find-account-name をご参照ください。

Open Catalog用の Snowflake CLI 接続を作成します。

SSO を使用するようにSnowflake Open Catalogを構成するには、Open Catalog用のSnowflake CLI 接続が必要です。この接続を作成するには、以下のステップを実行します。Snowflake CLI がまだインストールされていない場合は、[Snowflake CLI のインストール](https://docs.snowflake.com/en/developer-guide/snowflake-cli/installation/installation)をご参照ください。

重要

この接続を作成するには、サービス管理者権限を持つOpen Catalogユーザーである必要があります。サービス管理者権限の詳細については、[サービス管理者ロール](../opencatalog/access-control.md#service-admin-role)をご参照ください。

Snowflake Open Catalog用のSnowflake CLI 接続を追加します。

SSO を有効にするSnowflake Open Catalogアカウントの接続を追加します。

  • 次の値で <https://docs.snowflake.com/en/developer-guide/snowflake-cli/connecting/configure-connections#add-a-connection>_ の接続を追加してください。他のすべてのパラメーターについては、Enter を押して、パラメーターの値の指定をスキップします。

    接続構成パラメーター

    この接続の名前

    接続の名前を指定します。例: myopencatalogconnection.

    アカウント名

    Snowflake 組織名の後にOpen Catalogアカウント名を、次の形式で指定してください。

    <orgname>-<my-snowflake-open-catalog-account-name>

    例: ABCDEFG-MYACCOUNT1

    これらの名前を見つけるには、始める前に_ をご参照ください。

    ユーザー名

    Open Catalogのユーザー名を指定します。例: jsmith

    パスワード[オプション]

    Open Catalogの接続を作成する場合、このパラメーターはオプションではありません

    Open Catalogのパスワードを入力します。例: MyPassword123456789

    接続のロール[オプション]

    Open Catalogの接続を作成する場合、このパラメーターはオプションではありません

    POLARIS_ACCOUNT_ADMIN を入力する必要があります

Snowflake CLI 接続をテストします

  • CLI 接続をテストするには、myopencatalogconnection の接続をテストするこの例に従ってください。

    snow connection test -c myopencatalogconnection
    
    Copy

    応答は次のようになります。

    +------------------------------------------------------------------------------+
    | key              | value                                                     |
    |----------------------------+-------------------------------------------------|
    | Connection name  | myopencatalogconnection                                   |
    | Status           | OK                                                        |
    | Host             | ABCDEFG-MYACCOUNT1.snowflakecomputing.com                 |
    | Account          | ABCDEFG-MYACCOUNT1                                        |
    | User             | jsmith                                                    |
    | Role             | POLARIS_ACCOUNT_ADMIN                                     |
    | Database         | not set                                                   |
    | Warehouse        | not set                                                   |
    +------------------------------------------------------------------------------+
    
    Copy

Snowflake Open Catalog の Snowflake CLI 接続をデフォルトに設定する

使用している接続に常に必要な POLARIS_ACCOUNT_ADMIN ロールが付与されているようにするには、Open Catalog用に作成したSnowflakeの CLI 接続をデフォルト接続として設定できます。デフォルト接続の詳細については、デフォルト接続の設定 <https://docs.snowflake.com/en/developer-guide/snowflake-cli/connecting/configure-connections#set-the-default-connection>_ をご参照ください。

  1. myopencatalogconnection 接続をデフォルトとして設定する次の例に従ってください。

    snow connection set-default myopencatalogconnection
    
    Copy
  2. 正しいユーザーとロールを使用していることを確認するには、以下を実行します。

    snow sql -q "Select current_user(); select current_role();"
    
    Copy

    応答としてOpen Catalog ユーザー名が返され、CURRENT ROLE は POLARIS_ACCOUNT_ADMIN になります。

    +----------------+
    | CURRENT_USER() |
    |----------------|
    | JSMITH        |
    +----------------+
    select current_role();
    +-----------------------+
    | CURRENT_ROLE()        |
    |-----------------------|
    | POLARIS_ACCOUNT_ADMIN |
    +-----------------------+
    
    Copy

セキュリティ統合を作成する

セキュリティ統合を作成するには、Snowflake CLI 接続を使用して CREATE SECURITY INTEGRATION コマンドを実行します。[Auth0セキュリティ統合](#auth0-security-integration)または[Oktaセキュリティ統合((#okta-security-integration)を作成できます。

注釈

設定したデフォルトの Snowflake CLI 接続に POLARIS_ACCOUNT_ADMIN ロールが付与されていない場合は、コマンドに次のステートメントを含める必要があります: USE ROLE POLARIS_ACCOUNT_ADMIN

Auth0セキュリティ統合

  • Auth0の SAML セキュリティ統合を作成するには、Snowflake CLI で次のコマンドを実行します。

    snow sql -q “create security integration <Name>
        type = saml2
        enabled = true
        saml2_issuer = 'urn:<Auth0 Domain>'
        saml2_sso_url = '<SAML Protocol URL>'
        saml2_provider = 'Custom'
        saml2_x509_cert='<Certificate from Auth0>'
        saml2_sp_initiated_login_page_label = 'Auth0'
        saml2_enable_sp_initiated = true
        saml2_snowflake_acs_url = 'https://<orgname>-<my-snowflake-open-catalog-account-name>.snowflakecomputing.com/fed/login'
        saml2_snowflake_issuer_url = 'https://<orgname>-<my-snowflake-open-catalog-account-name>.snowflakecomputing.com'
        saml2_requested_nameid_format = 'urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress';
    Copy

    条件:

    • <Name> は、セキュリティ統合の識別子を指定します。は、アカウントに対して一意である必要があります。

    • <Auth0 Domain> がAuth0コンソールにコピーされます。この値を見つけるには、Auth0でアプリケーション > アプリケーション > Snowflake Open Catalogアプリケーション > 設定 > 基本情報: ドメインフィールドにナビゲートします。

    • <SAML Protocol URL> がAuth0コンソールにコピーされます。この値を見つけるには、Auth0で、アプリケーション > アプリケーション > Snowflake Open Catalogアプリケーション > 設定 > 詳細設定 > エンドポイントタブ: SAML プロトコル URLフィールドにナビゲートします。

    • <Certificate from Auth0> がAuth0コンソールにコピーされます。この値を見つけるには、Auth0で、次の場所にナビゲートします。アプリケーション > アプリケーション > Snowflake Open Catalogアプリケーション > 設定 > 詳細設定 > 証明書タブ: 署名証明書 フィールド。<BEGIN CERTIFICATE> と <END CERTIFICATE> の間の値をコピーします。

    • <orgname> は、Snowflake組織の名前です。この名前を見つけるには、[始める前に](#before-you-begin)をご参照ください。

    • <my-snowflake-open-catalog-account-name> は、Snowflake Open Catalogアカウントの名前です。この名前を見つけるには、[始める前に](#before-you-begin)をご参照ください。

Oktaセキュリティ統合

  • Oktaの SAML セキュリティ統合を作成するには、Snowflake CLI で次のコマンドを実行します。

    snow sql -q “CREATE SECURITY INTEGRATION <Name>
        TYPE = SAML2 
        ENABLED = TRUE 
        SAML2_ISSUER = '<ENTITY ID>' 
        SAML2_SSO_URL = '<IDP SSO URL>' 
        SAML2_PROVIDER = 'OKTA' 
        SAML2_X509_CERT='<Authentication Certificate>' 
        SAML2_SP_INITIATED_LOGIN_PAGE_LABEL = 'OKTA SSO'
        SAML2_ENABLE_SP_INITIATED = TRUE
        SAML2_SNOWFLAKE_ACS_URL = 'https://<orgname>-<my-snowflake-open-catalog-account-name>.snowflakecomputing.com/fed/login'
        SAML2_SNOWFLAKE_ISSUER_URL = 'https://<orgname>-<my-snowflake-open-catalog-account-name>.snowflakecomputing.com';
    Copy

    条件:

    • <Name> は、セキュリティ統合の識別子を指定します。は、アカウントに対して一意である必要があります。

    • <ENTITY ID> は、[Oktaでアプリケーションを作成する](./sso-configure-idp.md#create-an-application-in-okta-for-your-snowflake-open-catalog-account)ときにコピーしたエンティティ ID の値です。

    • <IDP SSO URL> は、Oktaでアプリケーションを作成したときにコピーした IDP SSO URL の値です。

    • <Authentication Certificate> は、Oktaでアプリケーションを作成したときにコピーした IDP 認証証明書の値です。

    • <orgname> は、Snowflake組織の名前です。この名前を見つけるには、[始める前に](#before-you-begin)をご参照ください。

    • <my-snowflake-open-catalog-account-name> は、Snowflake Open Catalogアカウントの名前です。この名前を見つけるには、[始める前に](#before-you-begin)をご参照ください。

セキュリティ統合を確認する

一度に使用できるセキュリティ統合は1つだけであり、使用する統合は有効になっている必要があります。

注釈

設定したデフォルトの Snowflake CLI 接続に POLARIS_ACCOUNT_ADMIN ロールが付与されていない場合は、コマンドに次のステートメントを含める必要があります: USE ROLE POLARIS_ACCOUNT_ADMIN

  1. 使用するセキュリティ統合が有効になっていることを確認するには、次のコマンドを実行します。

    snow sql -q "desc security integration <saml2-security-integration-name>;"
    
    Copy

    応答に SAML2_ENABLE_SP_INITIATED=true が含まれている場合、SAML2 セキュリティ統合は有効です。

  2. オプション:応答に SAML2_ENABLE_SP_INITIATED=false が含まれている場合、これを有効にするには、次のコマンドを実行します。

    snow sql -q “ALTER SECURITY INTEGRATION <saml-security-integration-name> SET ENABLED = TRUE;
    Copy

Open Catalogアカウントでのユーザーの作成

SSO をユーザーに対して機能させるには、IdP で作成したユーザーに対応するOpen Catalogユーザーを作成する必要があります。

重要

ユーザーを作成するには、Snowflake CLI を使用する必要があります。

Open Catalog UI を使用してユーザーを作成する場合は、ユーザーが SSO またはOpen Catalog認証情報を使用してサインインできるように、パスワードを指定する必要があります。

  • ユーザーを作成するには、次のコマンドを実行します。

    snow sql -q "CREATE USER \"<login-name>\" EMAIL='<email>';"
    
    Copy

    条件:

    • <login-name> は、次のいずれかに一致する必要があります。

      • Auth0でユーザーに指定したメール

      • Oktaでユーザーに指定したユーザー名

    • <email> is the user's email address. If you're using Auth0, this value will match <ログイン名>。

    例:

    snow sql -q "CREATE USER \"testuser123@example.com\" EMAIL='testuser123@example.com';"
    
    Copy
  • ユーザーが正しく設定されていることを確認するには、以下のコマンドを実行します。

    snow sql -q "show users;"
    
    Copy

    応答の LOGIN_NAME 列の値は、Auth0のメールアドレスまたはOkta の ユーザー名と一致する必要があります。