Microsoft 365/Graph & IIS

Microsoft Graph & IIS. (3) Microsoft Identity Platform을 활용하여 Sample 로그인 페이지 생성

Pepuri 2024. 2. 25. 17:50
반응형

이전글

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와 연결하여 호출하는 동작에 대해서 다뤄보았습니다.

이번 포스팅은 이것으로 마치겠습니다.

반응형