Microsoft Graph & IIS. (3) Microsoft Identity Platform을 활용하여 Sample 로그인 페이지 생성
이전글
2024.02.11 - [Microsoft 365/Graph & IIS] - Microsoft Graph & IIS. (1) 기본 테스트 환경 구성
2024.02.12 - [Microsoft 365/Graph & IIS] - Microsoft Graph & IIS. (2) ASP.NET Sample Page를 IIS에 게시
이번 글에서는 IIS 기반 웹사이트에서 M365 (Entra ID)를 사용하여 SSO(Single Sign-On)을 구성하는 방법을 다뤄보겠습니다.
https://youtu.be/X33YhuqG9Zc(한국어 버전)
https://youtu.be/hb7ZDVwJWEE(English Version)
Visual Studio 실행 -> Create a new project
ASP.NET Core Web App (Model-View-Controller)
Project name 지정 -> Next
Authentication type -> Microsoft identity platform -> Create
Next
Sign in -> Microsoft
관리자 계정 로그인
Create new
브라우저 창이 팝업 됩니다. 관리자 계정 로그인
인증 완료
Display name 을 지정 -> Register
생성 확인 -> Next
Add Microsoft Graph permissions -> Next
Client secret value를 메모장에 저장합니다. -> Next
Finish
Close
Close
서비스 등록됨, Secrets.json(Local) 생성 확인
Appsettings.json 파일을 더블 클릭
생성된 앱 정보가 확인됩니다.
Entra ID에서 동일하게 확인됩니다.
Start Debugging
Local host -> 로그인 페이지로 바로 리디렉션 됩니다. -> 관리자 계정 로그인
처음 접속시 아래와 같이 권한을 확인합니다. -> Accept
로그인한 계정을 호츨하여 표시합니다.
Sign out 하면 다음과 같이 표시됩니다.
다른 계정을 로그인 하면 해당 계정의 정보를 표시합니다.
Build -> Publish Identity
Web Server (IIS) -> Next
Web Deploy Package -> Next
패키지 내보낼 위치 지정 -> Site Name 지정 -> Finish
Close
Publish
완료되면 패키지 파일을 IIS Server 로 복사합니다.
지난번의 글에서 진행한 것처럼, 압축해제후 아래와 같이 wwwroot 등 필수 폴더 및 파일을 최상위 폴더로 복사합니다.
IIS Manager 실행
Sites 우클릭 -> Add Website
아래와 같이 지정
Localhost 테스트시 아래와 같이 Error 500 발생합니다. 원인은 ClientSecret 값은 Publish할 때 포함되어 있지 않기 때문에 발생합니다.
Appsettings.json 파일을 Notepad로 Open 합니다.
이전에 저장한 Secret Value 를 아래와 같은 형태로 추가 -> 저장
(다만 실제 환경에서는 보안상의 이유로 아래의 방법은 권장하지 않습니다.)
IISRESET 을 진행
로그인 확인
게시한 URL로 테스트 진행
Redirect URI 오류가 발생합니다.
Entra ID Admin center -> Applications -> App registration -> Authentication -> Redirect URIs에 아래와 같이 추가합니다.
로그인 확인
Microsoft Identity Platform을 이용하여 로그인 후 Graph와 연결하여 호출하는 동작에 대해서 다뤄보았습니다.
이번 포스팅은 이것으로 마치겠습니다.