Azure Static Web Apps를 시도한 5【Azure AD B2C 연계】
소개
이전 기사 "Azure Static Web Apps를 사용해 본 4 [Azure AD 연계]" 에서 Azure Static Web Apps와 Azure Active Directory와의 연동에 대해 썼습니다.
이번에는 OIDC(OpenID Connect)로 연계가 가능한 Azure AD B2C와의 연계를 해보겠습니다.
전제
OIDC와 협력하려면 Azure Static Web Apps는 Standard 플랜(Free 플랜에서는 불가)이어야 합니다.
참고 : Azure Static Web Apps에서 사용자 지정 인증
Azure AD B2C
Static Web Apps와 함께 작동하기 위해 Azure AD B2C는 다음을 수행합니다.
앱 등록
B2C 메뉴에서 「앱 등록」-> 「신규 등록」을 클릭하여 애플리케이션을 등록합니다.
중요한 것은 리디렉션 URL로, 다음의 규칙으로 설정해, 등록 후 「애플리케이션 ID를 메모」해 둡니다. (기타 기본값)
그런 다음 로그아웃용 URL을 함께 설정합니다.
클라이언트 비밀
등록한 애플리케이션을 선택하고 [인증서 및 비밀] -> [새 클라이언트 비밀]을 클릭하여 클라이언트 비밀을 등록합니다. 등록 후, 반드시 「값」을 메모해 둡니다.
사용자 흐름 만들기
이번에는 '사인업 및 로그인 추천'에서 만들었습니다.
속성 선택에서 「표시명」은 필수이므로 주의입니다. (ON하지 않으면 403페이지가 나오게 됩니다)
metadata URL 확인
만든 사용자 흐름을 선택하고 "사용자 흐름 실행"에 표시되는 URL(metadata URL)을 기록해 둡니다.
Static Web Apps
메뉴에서 구성을 선택하고 '애플리케이션 설정'에 앞서 로컬에 저장해 둔 '애플리케이션 ID'와 '클라이언트 비밀'을 각각 등록하고 키를 로컬에 저장해 둡니다.
※ 키(이름)는 임의로 OK입니다. 키 이름은 아래의 staticwebapp.config.json으로 설정합니다.
staticwebapp.config.json
Azure AD와의 연계와 마찬가지로 staticwebapp.config.json을 설정해야 합니다.
customOpenIdConnectProviders의 다음 요소(예: b2c)가 콜백 URL의 속성 값이 되므로 주의합니다.
{
"$schema": "https://json.schemastore.org/staticwebapp.config.json" ,
"auth": {
"identityProviders": {
"customOpenIdConnectProviders": {
"b2c": {
"registration": {
"clientIdSettingName": "<SWAに設定したアプリケーションIDのキー名>",
"clientCredential": {
"clientSecretSettingName": "<SWAに設定したクライアントシークレットのキー名>"
},
"openIdConnectConfiguration": {
"wellKnownOpenIdConfiguration": "<メモしておいたmetadata URL>"
}
},
"login": {
"nameClaimType": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name",
"scopes": ["openid", "profile"]
}
}
}
}
},
"routes": [
{
"route": "/*",
"allowedRoles": ["authenticated"]
}
],
"responseOverrides": {
"401": {
"redirect": "/.auth/login/b2c",
"statusCode": 302
}
}
}
동작 확인
안전하게 로그인할 수 없는 경우 로그인 페이지가 표시됩니다.
로그인하면 응용 프로그램 페이지가 표시됩니다.
(당연히 API 측도 인증되지 않은 경우 login으로 리디렉션됩니다)
요약
Azure Active Directory B2C와의 연계를 시도했지만 OIDC에서 연동할 수 있는 IDP와 연동할 수 있는 것은 큰 강점이라고 느꼈습니다.
Reference
이 문제에 관하여(Azure Static Web Apps를 시도한 5【Azure AD B2C 연계】), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/akihiro-nakano/items/4c0f1d90446b0b0dc5cd텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)