피드로 돌아가기
No Certs, No Secrets: Microsoft Graph on Azure using Entra Workload Identity Federation and Amazon Cognito (OIDC)
Dev.toDev.to
Backend

No Certs, No Secrets: Microsoft Graph on Azure using Entra Workload Identity Federation and Amazon Cognito (OIDC)

Microsoft Graph 인증 시 클라이언트 시크릿·인증서 대신 Amazon Cognito OIDC를 통한 Entra Workload Identity Federation 도입으로 수동 로테이션 제거

samconibear2026년 3월 24일9intermediate

Context

Microsoft Graph를 인증할 때 클라이언트 시크릿이나 인증서를 사용하면 엔터프라이즈 보안 정책 상 수동으로 정기적으로 로테이션해야 한다. 이 문제를 해결하기 위해 외부 OIDC 제공자를 신뢰하도록 설정된 Workload Identity Federation 방식이 필요했다.

Technical Solution

  • Amazon Cognito에서 Identity Pool 생성: 인증되지 않은 접근 차단(allowUnauthenticatedIdentities: false), 개발자 제공자 이름 설정으로 OIDC JWT 토큰 발급 준비
  • IAM 정책으로 Identity Pool 접근 제어: cognito-identity:GetOpenIdTokenForDeveloperIdentity, cognito-identity:GetId 액션 허용
  • AWS Lambda를 통한 Cognito JWT 요청: get_open_id_token_for_developer_identity API 호출로 토큰 발급, 토큰 유효시간 설정(60초 또는 120초)
  • Azure AD 앱 등록 후 연합 자격증명(Federated Credential) 설정: Issuer를 https://cognito-identity.amazonaws.com으로 지정, Subject와 Audience 값(Cognito Identity Pool ID)을 Azure 앱에 명시적으로 구성
  • Cognito JWT를 Azure 토큰으로 교환: Entra의 /token 엔드포인트(login.microsoftonline.com)에 client_assertion_type으로 JWT Bearer 토큰 전달하는 client credentials flow 사용

Key Takeaway

클라이언트 시크릿 없이 OIDC 제공자 간 신뢰 관계를 설정하면 수동 로테이션 없이 임시 토큰 기반 인증이 가능해진다. 엔터프라이즈 환경에서 여러 클라우드 제공자를 조합할 때 Workload Identity Federation이 보안과 운영 부담의 균형을 맞추는 핵심 패턴이다.


Azure를 사용하면서 AWS 기반 인프라를 병행하는 팀은 Amazon Cognito Identity Pool의 OIDC JWT를 Entra Workload Identity Federation과 직접 연계할 수 있으므로, 별도의 시크릿 관리 시스템 도입 없이 토큰 교환만으로 권한 위임을 구현할 수 있다.

원문 읽기
No Certs, No Secrets: Microsoft Graph on Azure using Entra Workload Identity Federation and Amazon Cognito (OIDC) | Devpick