리디렉션 URI란 무엇인가요?
리디렉션 URI(Redirect URI)는 OAuth 2.0 인증 흐름에서 핵심적인 요소입니다. 인증 서버(이 경우 Azure AD)가 인증 완료 후 사용자를 다시 보낼 위치를 지정합니다. 보안상의 이유로 Azure AD는 미리 등록된 리디렉션 URI로만 인증 토큰을 반환합니다.
왜 문제가 발생하나요?
Teams 앱은 인증이 되지만 Outlook에서는 안 되는 이유는, 현재 Azure AD에 Teams의 리디렉션 URI만 등록되어 있고 Outlook의 리디렉션 URI는 등록되어 있지 않기 때문입니다.
Azure AD에 Outlook 리디렉션 URI 추가하는 방법
1. Azure 포털 접속 및 앱 등록 찾기
- Azure 포털에 로그인
- "Azure Active Directory" → "앱 등록" 메뉴로 이동
- 현재 Teams에서 사용 중인 앱을 선택
2. 리디렉션 URI 추가
"인증" 탭에서 리디렉션 URI 섹션을 찾아 다음과 같이 Outlook 관련 URI를 추가합니다:
https://outlook.office.com/auth/callback
https://outlook.office365.com/auth/callback
https://outlook.live.com/auth/callback
3. 구체적인 예시
예를 들어, 현재 Teams용으로 등록된 리디렉션 URI가 다음과 같다면:
https://teams.microsoft.com/auth/callback
여기에 Outlook URI를 추가하여 최종적으로는 다음과 같이 됩니다:
https://teams.microsoft.com/auth/callback
https://outlook.office.com/auth/callback
https://outlook.office365.com/auth/callback
https://outlook.live.com/auth/callback
4. SPA(단일 페이지 애플리케이션) 설정 예시
만약 애플리케이션 유형이 SPA로 설정되어 있다면:
{
"spa": {
"redirectUris": [
"https://teams.microsoft.com/auth/callback",
"https://outlook.office.com/auth/callback",
"https://outlook.office365.com/auth/callback"
]
}
}
Outlook 사이드 앱 매니페스트 설정
추가로 Outlook 사이드 앱 매니페스트(manifest.json)에도 관련 설정이 필요할 수 있습니다:
{
"id": "your-add-in-id",
"version": "1.0.0",
"manifestVersion": "1.1",
"host": {
"desktopFormFactor": {
"functionFile": "https://your-app-url/function-file.html",
"sourceLocation": "https://your-app-url/taskpane.html"
}
},
"authorizations": [
{
"resource": "https://graph.microsoft.com",
"scopes": ["User.Read", "Mail.Read"]
}
]
}
이렇게 Azure AD에 Outlook 관련 리디렉션 URI를 추가하면, 동일한 인증 로직으로 Teams와 Outlook 모두에서 앱이 정상적으로 인증을 처리할 수 있게 됩니다.
댓글
댓글 쓰기