Aikido Security SAML 설정 방법
사전 준비
- SAML 지원은 기본적으로 Disable 상태이다.
- SAML 지원을 위해서는 먼저 채팅으로 Aikido에 SAML 지원을 요청해야 한다.
- 지원을 요청할때 SAML 활성화와 함께 우리 도메인(example.com)의 SAML 연동을 허용해 달라고 요청해야 한다.
- 요청이 수용되면 SAML Setup 메뉴가 보여진다.
Aikido SAML 설정 확인
-
⚙️ > General > SAML Setup > Enable SAML Authentication
-
Setup SAML Authentication
-
Copy following details to your identity provider.
- Single Sign-On URL / ACS URL:
- https://app.aikido.dev/api/saml/saml_auth?samlClientId=68638323
- Audience URI / Entity ID:
- https://app.aikido.dev/saml
- Name ID Format:
- EmailAddress
- Single Sign-On URL / ACS URL:
-
Aikido가 제공한 값은 Aikido가 SAML 서비스 제공자(SP)라는 뜻.
-
이를 Keycloak의 SAML Client에 등록한 뒤, 반대로 Keycloak의 Issuer·SSO URL·인증서를 Aikido에 입력해야 한다.
-
Aikido가 제공한 값은 확인만하여 다음 Keyclock Client 설정에 사용한다.
Keycloak에 Aikido SAML Client 생성
- Manage realms > myrealm 선택해서 활성화
- Clients > Create client
- General settings
- Client type: SAML
- Client ID:
- https://app.aikido.dev/saml
- Name: Aikido SAML
- Description: Aikido SAML SSO integration
- <Next>
- General settings
- [Settings 탭]
-
Access settings
- Root URL: 비워 둠
- Home URL: 비워 둠
- Valid Redirect URIs:
- https://app.aikido.dev/api/saml/saml_auth?samlClientId=68638323
- IDP-Initiated SSO URL name: 비워 둠
- IDP-Initiated SSO Relay State: 비워 둠
- Master SAML Processing URL:
- https://app.aikido.dev/api/saml/saml_auth?samlClientId=68638323
-
SAML capabilities
- Name ID Format: email
- Force Name ID Format: On
- Force POST Binding: On
- Include AuthnStatement: On
- Include OneTimeUse Condition: Off
- Optimize REDIRECT signing key lookup: Off
- Allow ECP flow: Off
-
Signature and Encryption
- Sign Documents: On
- Sign Assertions: On
- Signature Algorithm: RSA_SHA256
- SAML Signature Key Name: KEY_ID
- Canonicalization method: EXCLUSIVE
- Metadata descriptor URL: 비워 둠
- Use metadata descriptor URL: Off
-
- [Keys 탭]
- Client Signature Required: Off
- Encrypt Assertions: Off
- [Client scopes 탭]
- role_list를 삭제한다. (중요!!)
- https://app.aikido.dev/saml-dedicated: No mappers 상태여야 한다.
- [Advanced 탭]
- Fine Grain SAML Endpoint Configuration
- Assertion Consumer Service POST Binding URL:
- https://app.aikido.dev/api/saml/saml_auth?samlClientId=68638323
- Assertion Consumer Service Redirect Binding: URL 비워둠
- Logout Service URL: 비워 둠
- Assertion Consumer Service POST Binding URL:
- Fine Grain SAML Endpoint Configuration
Aikido에 SAML 입력 양식 선 조사 및 입력
아래 URL을 확인하여 XML 형태의 정보를 확인한다. SAML 입력양식에 대한 정보는 이 XML에 포함되어 있다.
-
https://sso.example.com/realms/myrealm/protocol/saml/descriptor
-
Setup SAML Authentication
-
Fill in details provided by the identity provider.
-
Entity ID / Issuer
- entityID=“https://sso.example.com/realms/myrealm” 를 검색하여 이 중 아래부분을 취하여 입력한다.
- https://sso.example.com/realms/myrealm
- entityID=“https://sso.example.com/realms/myrealm” 를 검색하여 이 중 아래부분을 취하여 입력한다.
-
Single Sign-On URL
- <md:SingleSignOnService Binding=“urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect” Location=“https://sso.example.com/realms/myrealm/protocol/saml”/> 를 검색하여 이 중 아래부분을 취하여 입력한다.
- https://sso.example.com/realms/myrealm/protocol/saml
- <md:SingleSignOnService Binding=“urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect” Location=“https://sso.example.com/realms/myrealm/protocol/saml”/> 를 검색하여 이 중 아래부분을 취하여 입력한다.
-
X.509 Certificate
- X509Certificate entity의 MIIC…= 까지 값을 입력한다.
<X509Certificate> MIIC…= </X509Certificate>
-
Company Email Domain
- example.com (이 도메인은 사전에 Aikido에 승인이 되어 있어야 한다)
