OpenID Connect 공급자를 사용하여 로그인하도록 App Service 또는 Azure Functions 앱 구성
이 문서에서는 OpenID Connect 사양을 준수하는 사용자 지정 인증 공급자를 사용하도록 Azure App Service 또는 Azure Functions를 구성하는 방법을 보여 줍니다. OIDC(OpenID Connect)는 여러 IDP(ID 공급자)에서 사용되는 업계 표준입니다. 준수 IDP를 사용하도록 앱을 구성하기 위해 사양의 세부 정보를 이해할 필요는 없습니다.
하나 이상의 OIDC 공급자를 사용하도록 앱을 구성할 수 있습니다. 구성에서 각 공급자에 고유 영숫자 이름을 지정해야 하며, 하나의 공급자만 기본 리디렉션 대상 역할을 할 수 있습니다.
ID 공급자에 애플리케이션 등록
애플리케이션의 세부 정보를 공급자에 등록해야 합니다. 다음 단계 중 하나는 리디렉션 URI를 지정하는 것입니다. 이 리디렉션 URI는 <app-url>/.auth/login/<provider-name>/callback
형식입니다. 각 ID 공급자는 이러한 단계를 완료하는 방법에 대한 추가 지침을 제공해야 합니다. <provider-name>
은 Azure에서 OpenID 공급자 이름에 지정한 식별 이름을 참조합니다.
참고 항목
일부 공급자는 구성 및 제공된 값을 사용하는 방법에 대한 추가 단계가 필요할 수 있습니다. 예를 들어 Apple은 OIDC 클라이언트 암호로 사용되지 않는 프라이빗 키를 제공하며 해당 키를 대신 사용하여 앱 구성에 제공하는 암호로 처리되는 JWT를 작성해야 합니다(Apple 설명서를 사용하여 로그인의 “클라이언트 암호 만들기” 섹션 참조).
애플리케이션의 클라이언트 ID 및 클라이언트 암호를 수집해야 합니다.
Important
클라이언트 암호는 중요한 보안 자격 증명입니다. 다른 사람과 이 암호를 공유하거나 클라이언트 애플리케이션 내에 배포하지 마세요.
또한 공급자에 대한 OpenID Connect 메타데이터가 필요합니다. 이 메타데이터는 일반적으로 공급자의 발급자 URL에 /.well-known/openid-configuration
이 접미사로 추가된 구성 메타데이터 문서를 통해 노출됩니다. 이 구성 URL을 수집합니다.
구성 메타데이터 문서를 사용할 수 없는 경우 다음 값을 별도로 수집해야 합니다.
- 발급자 URL(
issuer
로 표시되는 경우도 있음) - OAuth 2.0 권한 부여 엔드포인트(
authorization_endpoint
로 표시되는 경우도 있음) - OAuth 2.0 토큰 엔드포인트(
token_endpoint
로 표시되는 경우도 있음) - OAuth 2.0 JSON Web Key 집합 문서의 URL(
jwks_uri
로 표시되는 경우도 있음)
애플리케이션에 공급자 정보 추가
- Azure Portal에 로그인하고 IoT Hub로 이동합니다.
- 왼쪽 메뉴에서 인증을 선택합니다. ID 공급자 추가를 선택합니다.
- ID 공급자 드롭다운에서 OpenID Connect를 선택합니다.
- OpenID 공급자 이름에 대해 이전에 선택한 고유한 영숫자 이름을 제공합니다.
- ID 공급자의 메타데이터 문서에 대한 URL이 있는 경우 메타데이터 URL에 해당 값을 제공합니다. 그렇지 않으면 엔드포인트를 별도로 제공 옵션을 선택하고 ID 공급자에서 수집한 각 URL을 적절한 필드에 배치합니다.
- 해당 필드에 이전에 수집된 클라이언트 ID 및 클라이언트 비밀을 제공합니다.
- 클라이언트 비밀에 대한 애플리케이션 설정 이름을 지정합니다. 클라이언트 비밀은 비밀이 안전한 방식으로 저장되도록 앱 설정으로 저장됩니다. Azure Key Vault에서 비밀을 관리하려는 경우 나중에 Key Vault 참조를 사용하도록 해당 설정을 업데이트할 수 있습니다.
- 추가 단추를 눌러 ID 공급자 설정을 완료합니다.
참고 항목
OpenID 공급자 이름은 "-"와 같은 기호를 포함할 수 없습니다. 앱 설정은 이를 기반으로 만들어지고 이를 지원하지 않기 때문입니다. 대신 "_"를 사용하세요.
참고 항목
Azure에는 "openid", "profile" 및 "email" 범위가 필요합니다. 최소한 이러한 범위를 사용하여 ID 공급자에서 앱 등록을 구성했는지 확인합니다.