# SAML로 로컬 로그인 비활성화

**URL:** https://meta.discourse.org/t/disable-local-login-with-saml/234988
**Category:** Support
**Created:** [8월 3, 2022, 1:13오후 UTC](https://meta.discourse.org/t/disable-local-login-with-saml/234988 "2022-08-03T13:13:50Z")
**Posts on this page:** 17
**Page:** 1

<div class="post-metadata">

### Author: ![tnagy](https://avatars.discourse-cdn.com/v4/letter/t/278dde/32.png) [@tnagy](https://meta.discourse.org/u/tnagy)
#### Post date: [8월 3, 2022, 1:13오후 UTC](https://meta.discourse.org/t/disable-local-login-with-saml/234988/1 "2022-08-03T13:13:50Z")

</div>

안녕하세요, SAML 통합을 설정했고 이제 SAML 계정이 연결된 몇몇 계정이 있습니다.

질문은 SAML 계정이 있는 사용자의 로컬 로그인을 비활성화하여 사용자명/비밀번호로 로그인하지 못하게 할 수 있는지 여부입니다.

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [8월 3, 2022, 8:24오후 UTC](https://meta.discourse.org/t/disable-local-login-with-saml/234988/2 "2022-08-03T20:24:18Z")

</div>

네. SAML이 정상적으로 작동한다면 로컬 로그인을 비활성화할 수 있습니다. 이메일 로그인도 함께 비활성화되는 것으로 보이므로, 별도로 조치할 필요가 없을 것입니다.

---

<div class="post-metadata">

### Author: ![tnagy](https://avatars.discourse-cdn.com/v4/letter/t/278dde/32.png) [@tnagy](https://meta.discourse.org/u/tnagy)
#### Post date: [8월 3, 2022, 9:20오후 UTC](https://meta.discourse.org/t/disable-local-login-with-saml/234988/3 "2022-08-03T21:20:42Z")

</div>

네, 이 옵션은 알고 있지만 전역 옵션이라 사용자별 옵션으로 설정할 수 있어야 합니다.  
제 사용자 중 절반은 내부 사용자이고, 절반은 외부 사용자입니다.  
외부 사용자는 로컬 로그인만 사용할 수 있고, 내부 사용자는 SAML을 사용해야 합니다. 이 경우 로컬 로그인 기능을 제거(또는 비활성화)하고 싶습니다.

이것이 가능한가요?

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [8월 4, 2022, 1:37오전 UTC](https://meta.discourse.org/t/disable-local-login-with-saml/234988/4 "2022-08-04T01:37:32Z")

</div>

그걸 어떻게 구현하나요? 로그인하지 않은 상태라면, 어떻게 사용자별 옵션이 될 수 있죠?

특정 그룹에 속해 있고 SAML을 사용하지 않은 사용자는 로그인을 거부하는 플러그인을 만들 수 있을 것 같아요. 2~4시간 정도 걸리지 않을까요? 적절한 명세서가 있으면 더 걸릴 수도 있고요. 아직 확인은 해보지 않았지만, 예산이 있다면 #Marketplace 채널에서 문의해 보시는 것도 좋을 것 같습니다.

---

<div class="post-metadata">

### Author: ![tnagy](https://avatars.discourse-cdn.com/v4/letter/t/278dde/32.png) [@tnagy](https://meta.discourse.org/u/tnagy)
#### Post date: [8월 4, 2022, 10:08오전 UTC](https://meta.discourse.org/t/disable-local-login-with-saml/234988/5 "2022-08-04T10:08:27Z")

</div>

제이, 네, 아마 제가 잘못된 표현을 쓴 것 같네요. 죄송합니다. 🙂

다음과 같은 옵션에 대해 생각하고 있어요.

`활성화된 관련 SSO(외부?) 계정이 있는 사용자의 로컬 로그인을 비활성화/허용하지 않음`

플러그인을 만드는 건 좋은 아이디어네요, 확인해 볼게요. 감사합니다!  
아니요, 예산은 없습니다…

---

<div class="post-metadata">

### Author: ![Stephen](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/stephen/32/95011_2.png) [@Stephen](https://meta.discourse.org/u/Stephen)
#### Post date: [8월 4, 2022, 10:56오전 UTC](https://meta.discourse.org/t/disable-local-login-with-saml/234988/6 "2022-08-04T10:56:57Z")

</div>

플러그인을 작성하기 위해 자금만 마련하는 것으로 끝나는 것이 아님을 기억해 두세요. Discourse가 업그레이드될 때에도 플러그인이 계속 작동하도록 유지 관리해야 합니다.

위 비용 감당이 어렵고 직접 작성할 기술도 없다면, 사용자가 SSO 대신 가끔 로컬로 로그인하는 방식으로 타협해야 할 수도 있습니다.

---

<div class="post-metadata">

### Author: ![tnagy](https://avatars.discourse-cdn.com/v4/letter/t/278dde/32.png) [@tnagy](https://meta.discourse.org/u/tnagy)
#### Post date: [8월 4, 2022, 11:01오전 UTC](https://meta.discourse.org/t/disable-local-login-with-saml/234988/7 "2022-08-04T11:01:59Z")

</div>

> [@Stephen](#):
>
> 플러그인을 작성하기 위해 자금을 마련하는 것만이 문제가 아닙니다. Discourse가 업그레이드될 때 플러그인이 계속 작동하도록 유지보수를 해야 합니다.

네, 그 점은 알고 있습니다.

> [@Stephen](#):
>
> 위와 같은 비용을 감당할 수 없고, 직접 코드를 작성할 기술도 없다면, 사용자들이 SSO 대신 가끔 로컬 로그인을 사용해야 할 수 있습니다.

맞는 말씀입니다. 한 가지 방법은 비밀번호를 변경하는 것이지만, 사용자가 비밀번호를 초기화하고 다시 로컬 로그인을 사용하는 것을 막을 수는 없을 것 같습니다.

---

<div class="post-metadata">

### Author: ![Stephen](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/stephen/32/95011_2.png) [@Stephen](https://meta.discourse.org/u/Stephen)
#### Post date: [8월 4, 2022, 11:05오전 UTC](https://meta.discourse.org/t/disable-local-login-with-saml/234988/8 "2022-08-04T11:05:22Z")

</div>

SAML 로그인이 해당 사용자의 로컬 계정에 연결되어 있다면 문제는 무엇인가요?

---

<div class="post-metadata">

### Author: ![tnagy](https://avatars.discourse-cdn.com/v4/letter/t/278dde/32.png) [@tnagy](https://meta.discourse.org/u/tnagy)
#### Post date: [8월 4, 2022, 11:31오전 UTC](https://meta.discourse.org/t/disable-local-login-with-saml/234988/9 "2022-08-04T11:31:20Z")

</div>

SAML은 중앙 IDM이며 내부(기업) LAN에서만 접근할 수 있습니다. 반면 Discourse 서버는 공개되어 있습니다.

내부 사용자는 사무실(또는 VPN)에서만 로그인할 수 있기를 원합니다. 하지만 로컬 로그인 방법을 사용할 수 있으므로 어디서든 로그인할 수 있으며, SAM/IDM을 통해 그들의 로그인을 비활성화할 수 없습니다(이것은 포럼에서 수동으로 수행해야 합니다).

큰 문제는 아니지만, 가능한 경우 중앙 IDM에 연결하도록 하는 정책을 가지고 있습니다.

---

<div class="post-metadata">

### Author: ![cocococosti](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/cocococosti/32/231474_2.png) [@cocococosti](https://meta.discourse.org/u/cocococosti)
#### Post date: [8월 4, 2022, 3:35오후 UTC](https://meta.discourse.org/t/disable-local-login-with-saml/234988/10 "2022-08-04T15:35:59Z")

</div>

내부 사용자(SAML을 통해 로그인하는 사용자)를 특정 그룹에 추가할 수 있습니다. 그런 다음 JS를 사용하여 해당 그룹에서 로컬 로그인 섹션을 숨길 수 있습니다. 해당 그룹에 속하지 않은 사용자에게는 SAML 로그인을 숨기는 JS를 추가할 수도 있습니다.

단순한 우회책이지만, 사용자가 잘못된 로그인을 사용하는 것을 방지하는 데 충분할 수 있습니다.

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [8월 4, 2022, 3:57오후 UTC](https://meta.discourse.org/t/disable-local-login-with-saml/234988/11 "2022-08-04T15:57:10Z")

</div>

하지만 로그인 페이지에 있는 사용자는 로그인되어 있지 않으므로, SAML 로그인을 사용하는 사용자에게 SAML 로그인을 숨기는 방법은 없습니다. 회사 IP 주소에 있지 않은 사용자에게 SAML 로그인을 숨기는 조치를 취할 수는 있겠지만, 어떻게 해야 하는지는 확실하지 않습니다.

---

<div class="post-metadata">

### Author: ![cocococosti](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/cocococosti/32/231474_2.png) [@cocococosti](https://meta.discourse.org/u/cocococosti)
#### Post date: [8월 4, 2022, 3:58오후 UTC](https://meta.discourse.org/t/disable-local-login-with-saml/234988/12 "2022-08-04T15:58:48Z")

</div>

아! 맞아요 🤦🏽‍♀️ 기업용 VPN을 사용한다면 IP 주소를 확인하는 방법이 통할 수도 있지만, 그 외에는 제 해결책은 잊으시는 게 좋을 것 같아요 😅

---

<div class="post-metadata">

### Author: ![Stephen](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/stephen/32/95011_2.png) [@Stephen](https://meta.discourse.org/u/Stephen)
#### Post date: [8월 4, 2022, 4:09오후 UTC](https://meta.discourse.org/t/disable-local-login-with-saml/234988/13 "2022-08-04T16:09:55Z")

</div>

> [@pfaffman](#):
>
> 기업 IP 주소가 아닌 사용자에게 SAML 로그인을 숨기는 조치를 취할 수 있을지도 모릅니다.

그렇게 하는 것이 유용할지 확실하지 않습니다. 어느 쪽으로든 작동하지 않을 것이기 때문입니다. SSO 주소가 외부에서 유효하지 않다면 브라우저는 공용 인터넷을 통해 해당 주소에 도달할 수 없습니다.

> [@tnagy](#):
>
> SAML은 중앙 IDM이며 내부(기업) LAN에서만 접근할 수 있지만, Discourse 서버는 공개되어 있습니다.

SAML은 인증 프로토콜이지 IDM이나 IdP가 아닙니다. SAML은 다른 곳에서 데이터를 가져와야 합니다. 여러분의 IDM이 SAML을 지원할 수도 있지만, 이 백엔드 시스템이 무엇인지 알려주지 않는 한 여기서 도움을 드리기 어려울 것입니다.

---

<div class="post-metadata">

### Author: ![tnagy](https://avatars.discourse-cdn.com/v4/letter/t/278dde/32.png) [@tnagy](https://meta.discourse.org/u/tnagy)
#### Post date: [8월 4, 2022, 5:48오후 UTC](https://meta.discourse.org/t/disable-local-login-with-saml/234988/14 "2022-08-04T17:48:32Z")

</div>

> [@Stephen](#):
>
> 그것이 유용하지 않을 것 같다는 생각이 듭니다. 어떤 경우에도 작동하지 않으니까요. SSO 주소가 외부에서 유효하지 않으면 브라우저가 공용 인터넷을 통해 해당 주소에 도달할 수 없습니다.

맞습니다

> [@Stephen](#):
>
> SAML은 인증 프로토콜이지 IdM이나 IdP가 아닙니다.

네, 잘 알고 있습니다. 인증 서비스는 내부 ADFS입니다. 하지만 제 질문은 SAML이나 ADFS에 관한 것이 아닙니다. 외부 로그인이 완벽하게 작동하고 있고, 저는 그 방식을 매우 좋아하거든요.

제가 알고 싶은 것은 계정에서 하나의 인증 소스만 활성화하고 나머지는 모두 비활성화하는 방법, 다시 말해 SSO가 정상 작동하는 사용자의 경우 로컬 로그인을 비활성화할 수 있는 방법이 있는지입니다.

로그인 시도가 이루어진 후에만 적용될 수 있다는 점은 이해하고 있습니다. 그 정도라면 문제가 되지 않습니다.

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [8월 5, 2022, 10:35오전 UTC](https://meta.discourse.org/t/disable-local-login-with-saml/234988/15 "2022-08-05T10:35:20Z")

</div>

사용자가 특정 그룹의 멤버인지 확인한 후, `must_use_saml` 그룹에 속해 있으면서 SAML로 로그인하지 않았다면 로그아웃하도록 하는 플러그인을 개발해야 합니다.

이러한 작업에 익숙한 개발자의 경우, 필요한 테스트 양과 스펙 생성 여부에 따라 대략 1~2시간이 소요될 것으로 보입니다.

---

<div class="post-metadata">

### Author: ![tnagy](https://avatars.discourse-cdn.com/v4/letter/t/278dde/32.png) [@tnagy](https://meta.discourse.org/u/tnagy)
#### Post date: [8월 5, 2022, 10:48오전 UTC](https://meta.discourse.org/t/disable-local-login-with-saml/234988/16 "2022-08-05T10:48:50Z")

</div>

제이, 고마워! 한번 해볼게!

---

<div class="post-metadata">

### Author: ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)
#### Post date: [9월 4, 2022, 10:48오전 UTC](https://meta.discourse.org/t/disable-local-login-with-saml/234988/17 "2022-09-04T10:48:58Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
