Snowflake OAuth の概要¶
Snowflake OAuth は、Snowflakeの組み込み OAuth サービスを使用して、OAuth ベースの認証を提供します。
このトピックでは、Snowflake OAuth と、Snowflake を OAuth リソースおよび認証サーバーとして使用してSnowflakeデータに安全にアクセスする方法について説明します。
Snowflake OAuth は、Snowflakeの組み込み OAuth サービスを使用し、次のアプリケーションをサポートします。
パートナーアプリケーション¶
サポートを構成するには、 パートナーアプリケーション用Snowflake OAuth の構成 をご参照ください。
パブリックインターネットを経由せずに OAuth を使用する方法については、 パートナーアプリケーション をご参照ください。
カスタムクライアント¶
Snowflakeは、組織が構成したカスタムクライアントをサポートしています。サポートを構成するには、 カスタムクライアント用のSnowflake OAuth の構成 をご参照ください。
ネットワークポリシー¶
専用ネットワークポリシーは、 Snowflake OAuth のみ と統合できます。 外部 OAuth セキュリティ統合は、個別のネットワークポリシーの設定をサポートしていませんが、Snowflakeアカウント全体に適用される一般的なネットワークポリシーを引き続き使用できます。
Snowflake OAuth セキュリティ統合には network_policy
パラメーターがあるため、Snowflake OAuth 統合はこれらの IP アドレスを通常のユーザーアクセス用に追加することなくユーザーを認証および承認できます。
Snowflake OAuth 統合に固有のネットワークポリシーを設定すると、Snowflake OAuth ネットワークポリシーをSnowflakeアカウントに適用される他のネットワークポリシーと区別することができます。したがって、Snowflake OAuth ネットワークポリシーでは、意図したとおりにユーザーの認証と承認が許可されます。
Snowflake OAuth 統合に適用されるネットワークポリシーは、Snowflakeアカウント全体に適用されるネットワークポリシーよりも優先されますが、ユーザーに割り当てられるネットワークポリシーのほうが優先されます。
重要
ユーザーまたはアカウントごとにネットワークポリシーが設定されていて、別の場所で実行されるサービス(例: Microsoft Power BI サービス)を使用している場合は、Snowflakeに接続できません。
Snowflake OAuth セキュリティ統合を作成したら、次のコマンドを使用して OAuth ネットワークポリシーを設定します。
ALTER SECURITY INTEGRATION <oauth_integration> SET NETWORK_POLICY = <oauth_network_policy>;
Snowflake OAuth ネットワークポリシーを設定解除するには、次のコマンドを使用します。
ALTER SECURITY INTEGRATION <oauth_integration> UNSET <oauth_network_policy>;
条件:
<oauth_integration>
Snowflake OAuth セキュリティ統合の名前を指定します。
<oauth_network_policy>
Snowflakeで、Snowflake OAuth ネットワークポリシーを指定します。
詳細については、 ネットワークポリシーを使用したネットワークトラフィックの制御 と ALTER SECURITY INTEGRATION をご参照ください。
エラーコード¶
Snowflake OAuth に関連するエラーコードの説明については、以下の表をご参照ください。
エラーコード |
エラー |
説明 |
---|---|---|
390302 |
OAUTH_CONSENT_INVALID |
特定のユーザーに対する同意の生成または検証に関する問題。 |
390303 |
OAUTH_ACCESS_TOKEN_INVALID |
Snowflakeセッションを作成しようとしたときに使用されたアクセストークンが期限切れまたは無効です。 |
390304 |
OAUTH_AUTHORIZE_INVALID_RESPONSE_TYPE |
無効な |
390305 |
OAUTH_AUTHORIZE_INVALID_STATE_LENGTH |
認証エンドポイントにパラメーターとして提供されたステータスパラメーターが2048文字を超えています。 |
390306 |
OAUTH_AUTHORIZE_INVALID_CLIENT_ID |
指定されたクライアントIDに関連付けられた統合は存在しません。 |
390307 |
OAUTH_AUTHORIZE_INVALID_REDIRECT_URI |
認証エンドポイントへのパラメーターとして指定された |
390308 |
OAUTH_AUTHORIZE_INVALID_SCOPE |
リクエストされた範囲が有効なスコープではないか、リクエストされた範囲をユーザーに完全に付与できません。 |
390309 |
OAUTH_USERNAMES_MISMATCH |
認証しようとしたユーザーは、アクセストークンに関連付けられているユーザーとは異なります。 |
390311 |
OAUTH_AUTHORIZE_INVALID_CODE_CHALLENGE_PARAMS |
コードチャレンジまたはコードチャレンジ方法のいずれかが見つからないか、無効であるか、サポートされていません。 |
さらに、 RFC から次のエラーが取得され、トークンのリクエストまたは交換が失敗したときに生成された JSON BLOBに返されます。
エラー |
説明 |
---|---|
invalid_client |
クライアントが不明である、クライアントのシークレットが一致しないなど、クライアント認証に関連する障害がありました。 |
invalid_grant |
提供された認可付与またはリフレッシュトークンが無効であるか、期限が切れているか、取り消されているか、認可リクエストで使用されたリダイレクト URI と一致しないか、別のクライアントにパブリッシュされました。 |
unsupported_grant_type |
現在、Snowflakeがサポートしていない付与タイプが提供されています(現時点でサポートされている付与タイプは「refresh_token」と「authorization_code」のみ)。 |
invalid_request |
リクエストの形式が正しくないか、処理できませんでした。 |