인증 및 권한 부여 소개

인증에 대해 이야기할 때 초기 개발자는 인증과 권한 부여의 차이점에 대해 혼동하기 쉽습니다. 이 둘은 같은 의미로 사용되지만 실제로는 완전히 다른 두 가지를 의미합니다. 이 기사에서는 각 용어가 구체적으로 무엇에 해당하는지, 그리고 각 용어가 애플리케이션에서 구현하는 데 왜 중요한지 분석하겠습니다. 또한 가장 최근에 사용한 앱에서 최근에 어떻게 인증을 구현했는지 보여드리겠습니다.

입증



인증은 사용자가 자신이 주장하는 사용자인지 여부를 확인하는 프로세스입니다. 이것은 일종의 자격 증명을 얻고 해당 자격 증명을 사용하여 사용자의 신원을 확인함으로써 수행됩니다. 간단한 사용자 이름 또는 암호 조합, 보안 문자 테스트 또는 2FA(2단계 인증)와 같이 사용자를 인증하는 데 사용할 수 있는 여러 가지 방법이 있습니다. 사용자의 자격 증명이 유효한 것으로 판명되면 권한 부여 프로세스를 구현할 수 있습니다. 인증 프로세스는 항상 Authorization 프로세스로 진행됩니다.

권한 부여



권한 부여는 애플리케이션의 특정 기능 및 리소스에 액세스할 수 있는 권한을 사용자에게 부여하는 행위입니다. 사용자가 성공적으로 인증되면 권한 부여에 따라 시스템에 액세스할 수 있는 능력과 범위가 결정됩니다. 귀하의 웹사이트나 애플리케이션에서만 사용하거나 사용자의 연락처나 캘린더와 같은 항목에 액세스하는 기능을 활성화하기 위해 Google 또는 Facebook과 같은 제3자를 사용하여 사용을 승인할 수 있는 많은 방법이 있습니다.



가장 최근의 애플리케이션에서는 Google을 사용하여 사용자를 인증하고 권한을 부여했습니다. 이것은 사용자가 Google로 리디렉션되는 매우 일반적인 관행이며 Google은 사용자가 자신이 말하는 사람인지 확인하고 일종의 인증 코드 중 하나를 제공합니다. 그런 다음 사용자는 인증할 인증 코드를 사용하여 애플리케이션으로 돌아가고 인증 코드를 Google의 액세스 토큰으로 교환할 수 있습니다. 이렇게 하면 일정이나 연락처와 같은 사용자 정보에 대한 애플리케이션 액세스 권한을 부여할 수 있습니다. Google 개발자 콘솔에서 프로젝트를 등록하여 앱에서 인증을 위해 Google을 쉽게 사용할 수 있으며 기존 Google 계정을 사용하여 사용자를 인증하도록 할 수 있습니다. 이를 통해 사용자 인증과 관련하여 표준이 되고 있는 OAuth 2.0을 쉽게 구현할 수 있습니다.

  //function to sign in with google auth
  const googleSignIn = async () => {
    try {
      const { type, user, accessToken } = await Google.logInAsync({
        iosClientId: IOS_AUTH_KEY,
        androidClioentId: ANDROID_AUTH_KEY,
        scopes: ["profile", "email"]
      })
      if (type === "success") {
        //key values to add to the userInfo global state
        axios.get(`${AXIOS_URL}/users/${user.email}`)
          .then(res => setUserInfo(userInfo => ({
            ...userInfo,
            signedIn: true,
            username: user.username,
            email: user.email,
            photoUrl: res.data.photo,
            id: res.data.id
          })))
          .catch(error => console.log('failed to find user', error));
      }
    } catch (error) {
      console.log(error)
    }
  }

about 기능은 내 반응 네이티브 앱에서 사용자를 인증하기 위해 expo와 함께 Google을 사용하는 방법입니다. 모바일 애플리케이션을 구축하고 있다면 expo with react native를 확인하는 것이 좋습니다. 수많은 API가 내장되어 있으며 그 중 다수는 인증 프로세스를 간소화할 수 있습니다. 위의 코드에서 볼 수 있듯이 expo의 도움으로 비교적 쉬운 하나의 기능으로 인증 및 권한 부여를 할 수 있었습니다. 내 앱을 Google에 등록한 후 Android 및 iOS 사용자 모두에 대한 인증 키를 받았습니다. 사용자가 인증되면 Google은 즉시 저장하고 애플리케이션에 사용할 수 있는 사용자 프로필 및 이메일 주소에 대한 액세스 권한을 부여하는 액세스 토큰을 반환합니다. 이와 같이 간소화된 인증은 구현하기 쉬울 뿐만 아니라 훨씬 더 간단한 사용자 경험을 제공합니다.

가능한 한 간단하게 분석하면 인증은 자신의 신원을 확인하는 것을 의미하고 권한 부여는 시스템에 대한 액세스 권한을 부여하는 것을 의미합니다. 인증은 자신이 누구인지 확인하는 프로세스이고 권한 부여는 액세스할 수 있는 항목을 확인하는 프로세스입니다. 이것이 둘 사이의 차이점을 이해하는 데 도움이 되기를 바라며, 또한 그들이 중요하고 일반적으로 함께 언급되는 이유이기도 합니다.

좋은 웹페이지 즐겨찾기