사용자 정의
인증할 때 사용자 지정 ID 공급자를 사용할 수 있습니다. ID 제공자는 소유권을 포함하여 IBM Cloud® App ID에서 특정하게 지원되지 않는 인증 메커니즘을 준수할 수 있습니다.
App ID에서 특정 ID 제공자에 대한 직접 지원을 제공하지 않을 경우 사용자 정의 ID 플로우를 사용하여 인증 프로토콜을 App ID의 기존 인증 플로우에 브릿징할 수 있습니다. 예를 들어 사용자가 사인인할 수 있도록 허용하기 위해 GitHub 또는 LinkedIn을 사용할 수 있습니다. App ID를 통해 사용자 인증 정보를 패키징 및 교환하기 전에 ID 제공자의 기존 SDK를 사용하여 해당 사용자 인증 정보를 활용할 수 있습니다. 많은 엔터프라이즈 시나리오에서 레거시 ID 제공자는 고유한 사용자 정의 인증 프로토콜을 사용하지만 여전히 App ID의 기능을 활용할 수 있습니다. 이러한 유형의 시나리오에서 사용자 정의 ID 플로우는 해당 인증 정보를 노출하지 않고 사용자를 안전하게 인증하기 위한 분리된 방법을 제공합니다.
사용자 정의 ID 구성
다음 단계를 사용하여 App ID에서 작동하도록 사용자 정의 ID 제공자를 구성할 수 있습니다.
시작하기 전에
App ID와 사용자 정의 ID 제공자 사이에 신뢰를 설정하려면 최소 길이가 2048인 RSA PEM 키 쌍이 있어야 합니다. 프로덕션에서 사용하는 모든 키를 안전하게 백업해야 합니다.
키는 어떻게 사용됩니까?
- 개인 키는 JWT에 서명하기 위해 앱 또는 ID 제공자에서 사용됩니다.
- 공개 키는 사용자 정보가 포함된 JWT를 유효성 검증하기 위해 App ID에서 사용됩니다.
Open SSL을 사용하여 RSA PEM 키 쌍을 생성하려면 다음 명령을 실행하십시오.
openssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:2048
openssl rsa -pubout -in private_key.pem -out public_key.pem
GUI를 사용하여 구성
-
IBM Cloud 계정에 사인인한 후 App ID의 인스턴스로 이동하십시오.
-
관리 탭에서 사용자 정의 ID 제공자를 켜기로 설정하십시오.
-
공개 키를 App ID에 등록하십시오.
- 사용자 정의 ID 제공자 탭으로 이동하십시오.
- 공개 키 상자에 공개 키를 붙여넣은 후 저장을 클릭하십시오.
API를 사용하여 구성
관리 API 엔드포인트에 대한 PUT 요청을 수행하여 키를 등록하십시오.
Put <managementURI>/config/idps/custom
Content-Type: application/json
{
isActive: true,
config: {
publicKey: Your newline separated (\n) PEM public key
}
}
구성 테스트
올바른 공개 키를 사용하여 App ID 인스턴스를 구성한 후에는 해당 서비스에서 제공되는 테스트 애플리케이션을 사용하여 구성이 올바르게 설정되었는지 확인할 수 있습니다. 예제 앱에서는 표준 사인인 플로우 중에 리턴되는 App ID 액세스 및 ID 토큰 페이로드를 확인할 수 있습니다.
-
사용자 정의 ID 제공자 탭에서 테스트를 클릭하여 테스트 애플리케이션을 여십시오.
-
JSON 웹 토큰으로 레이블 지정된 상자에 JWT를 붙여넣은 후 테스트를 클릭하여 샘플 인증을 실행하십시오.
정상적으로 완료되는 경우 이제 표준 사인인 플로우에서 애플리케이션이 사용할 수 있는 디코딩된 App ID ID 및 액세스 토큰이 표시됩니다.
다음 단계
사용자 정의 ID 제공자가 구성되었으면 애플리케이션에 사용자 정의 ID 제공자를 추가하십시오!