앱 사양으로 보안 통합 요청하기¶
이 항목에서는 앱 사양을 사용하여 컨슈머 계정의 보안 통합에 대한 액세스를 요청하도록 |native-app|을 구성하는 방법에 대해 설명합니다. 보안 통합을 통해 앱은 OAuth와 같은 서드 파티 인증 공급자에 연결할 수 있습니다.
앱에서 서드 파티 인증 공급자에 액세스하기¶
서드 파티 인증 서비스를 구현하기 위해 Snowflake는 보안 통합을 제공합니다. 보안 통합을 통해 앱은 OAuth과 같은 서드 파티 인증 서비스에 연결할 수 있습니다.
참고
|native-apps|에서는
API_AUTHENTICATION유형의 보안 통합만 지원합니다. 자세한 내용은 CREATE SECURITY INTEGRATION(External API 인증) 섹션을 참조하십시오.
보안 통합을 위한 앱 사양 워크플로¶
보안 통합을 사용하도록 앱을 구성하는 일반적인 워크플로는 다음과 같습니다.
공급자는 앱에 대한 권한 자동 부여 를 구성합니다. 이를 통해 앱에 보안 통합을 생성할 수 있는 권한이 부여됩니다.
참고
앱 사양에 따라 매니페스트 파일을
manifest_version = 2로 설정해야 합니다.Providers add the CREATE SECURITY INTEGRATION privilege to the manifest file.
공급자는 설정 스크립트에 SQL 문을 추가하여 필요에 따라 다음 오브젝트를 만듭니다.
공급자는 앱이 설치될 때 이러한 오브젝트가 생성되도록 설정 스크립트에 이러한 명령을 직접 추가할 수 있습니다. 또는 이러한 명령을 런타임 시 호출되는 저장 프로시저에 추가하여 해당 오브젝트를 생성할 수 있습니다.
Consumers approve information related to OAuth integration when configuring the app. For more information on how consumers view and approve app specifications, see 앱 사양을 사용하여 외부 리소스 연결 승인.
보안 통합을 위한 앱 사양 정의¶
보안 통합을 위해, :ref:`앱 사양 정의<label-native_apps_app_spec_definition>`에는 서드 파티 공급자에 연결하는 데 필요한 정보가 포함되어 있습니다. OAuth의 경우 앱 사양 정의는 OAuth 유형에 따라 다릅니다. 다음 테이블에는 각 유형에 대한 앱 사양 정의가 나와 있습니다.
보안 통합 유형 |
앱 사양에서 정의된 값 |
|---|---|
|
|
|
|
|
|
매니페스트 파일의 버전 설정하기¶
앱에 대한 권한을 자동으로 부여하려면 다음 예제와 같이 매니페스트 파일의 시작 부분에 버전을 설정합니다.
manifest_version: 2
Add the CREATE SECURITY INTEGRATION privilege to the manifest file¶
To allow an app to create a security integration, add the
CREATE SECURITY INTEGRATIONprivilege to the manifest file, as shown in the following example:manifest_version: 2 ... privileges: - CREATE SECURITY INTEGRATION: description: "Allows the app to create security integrations to access external auth providers" ...
If you set the manifest_version to 2 in the manifest file, Snowflake automatically grants
the CREATE SECURITY INTEGRATION privilege to the app during installation or upgrade.
설정 스크립트에 보안 통합 추가¶
보안 통합을 통해 앱은 OAuth과 같은 서드 파티 인증 서비스에 연결할 수 있습니다. 앱에 대한 보안 통합을 생성하려면 다음 예제와 같이 설정 스크립트에 CREATE SECURITY INTEGRATION(External API 인증) 명령을 추가합니다.
CREATE SECURITY INTEGRATION external_oauth_provider
TYPE = API_AUTHENTICATION
AUTH_TYPE = OAUTH2
OAUTH_CLIENT_AUTH_METHOD = CLIENT_SECRET_POST
OAUTH_CLIENT_ID = 'YOUR_CLIENT_ID'
OAUTH_CLIENT_SECRET = 'YOUR_CLIENT_SECRET'
OAUTH_GRANT = 'CLIENT_CREDENTIALS'
OAUTH_TOKEN_ENDPOINT = 'https://login.microsoftonline.com/YOUR_TENANT_ID/oauth2/v2.0/token'
OAUTH_ALLOWED_SCOPES = ('https://graph.microsoft.com/.default')
ENABLED = TRUE;
This example shows how to create a security integration to connect to Microsoft Graph using OAuth with client credentials. For other supported methods of connecting to an OAuth provider, see CREATE SECURITY INTEGRATION(External API 인증).
보안 통합을 위한 앱 사양 만들기¶
다음 예제는 CLIENT_CREDENTIALS OAuth 유형을 사용하여 보안 통합을 위한 앱 사양을 만드는 방법을 보여줍니다.
ALTER APPLICATION SET SPECIFICATION oauth_app_spec
TYPE = SECURITY_INTEGRATION
LABEL = 'Connection to an external OAuth provider'
DESCRIPTION = 'Integrates an external identity provider in the app'
OAUTH_TYPE = 'CLIENT_CREDENTIALS'
OAUTH_TOKEN_ENDPOINT = 'https://login.microsoftonline.com/YOUR_TENANT_ID/oauth2/v2.0/token'
OAUTH_ALLOWED_SCOPES = ('https://graph.microsoft.com/.default');
참고
앱 사양을 생성할 때 제공하는 값은 설정 스크립트에서 보안 통합을 생성 할 때 사용하는 값과 동일해야 합니다.
다른 OAuth 유형을 사용하는 방법에 대한 내용은 ALTER APPLICATION SET SPECIFICATIONS 섹션을 참조하세요.
컨슈머 계정에서 앱 사양 승인하기¶
공급자가 보안 통합 및 앱 사양을 생성하도록 앱을 구성한 후 컨슈머는 앱 사양을 보고 앱을 구성할 때 필요에 따라 앱 사양을 승인하거나 거부할 수 있습니다. 자세한 내용은 앱 사양을 사용하여 외부 리소스 연결 승인 섹션을 참조하십시오.