Firebase 인증깨끗하다
12254 단어 firebasegoogleclouddotnetvscode
오늘날 데이터 손실, ID 도난 및 기타 네트워크 위협이 증가하고 있습니다.따라서 (최악의 경우) 업무 실패의 가능성을 낮추기 위해 우리는 일상적인 개발 생활에서 안전하고 신뢰할 수 있는 코드를 작성해야 한다.
만약 이 모든 것이 당신의 걱정이라면, 나는 당신에게 이 박문을 자세히 읽으라고 강력히 건의합니다. (이것은 세 편의 시리즈 문장 중 첫 번째 편이 될 것입니다.)
대국🌍
이 시리즈에서 Google Firebase와 Google Firebase 자체를 지원하는 두 개의 인증 공급자를 지원하는 웹api 프로젝트를 구축할 것입니다.웹api 자원에 접근하기 위해서는 전자나 후자의 신분 검증 공급자를 대상으로 사용자에 대한 신분 검증을 해야 한다.이 경우 사용자는 200OK 의 응답 및 요청 데이터를 받게 됩니다.그렇지 않으면 데이터가 없는 401의 권한이 부여되지 않은 응답을 받을 것입니다.인증 메커니즘은 JWT 형식의 토큰 인증이 됩니다.
🧐메모🧐: 구글Firebase에 대한 더 많은 정보를 필요로 한다면 이것link을 보십시오.
블로그 글의 간소화를 유지하기 위해 나는 구축 과정을 세 부분으로 나누기로 결정했다.
첫벌
이 블로그에서 웹api 프로젝트를 만들고 테스트 요청을 만들 것입니다. 웹api 프로젝트에서Firebase와 관련된 내용을 설정하고Firebase 컨트롤러로 프로젝트를 관리하며 웹api에서Firebase 인증 메커니즘을 실현합니다.
머리말
이것은 신분 검증을 어떻게 실현하는지 보여주는 시범 프로그램이 될 것이다.그물너는 이런 개념들을 없애서 그것들이 너의 현실적 수요에 적응하도록 할 수 있다.
🔴중요했어❗🔴: 나는 모든 최선의 실천을 따라 시간을 절약하지는 않지만, 현실 세계에서 아직 준비가 되지 않은 것들을 발견할 수 있도록 최선을 다할 것이다.
여느 때와 마찬가지로 이 강좌를 공부할 때 문제가 발생하면GitHub에서 최종 해결 방안link을 볼 수 있습니다.
우리 시작하자.🚀
이런 필요한 생각들을 한 후에 우리는 재미있는 부분을 시작할 수 있다. 모든 사람들이 기다리고 있다...코딩!
선결 조건
이 자습서를 배우려면 컴퓨터에 다음과 같은 몇 가지 도구와 프로그램을 설치해야 합니다.
웹api 프로젝트 설치
우선 웹api 프로젝트를 만들어야 합니다.Dotnet CLI에서 이러한 작업을 수행합니다.따라서 터미널(또는 VScode에 통합된 터미널)을 열고 게시합니다.
dotnet new webapi -n "AuthSeries"
VScode가 u 종속성 복원 프롬프트를 표시하면 "예"를 입력하고 계속합니다.테스트
이제 편집을 시작하기 전에 모든 것이 잘 보일 수 있도록 첫 번째 시도를 해보겠습니다.
cd AuthSeries
로 디렉터리를 변경하고 명령dotnet run
으로 웹api를 실행합니다.기본적으로 웹api는 HTTPS 프로토콜의 포트 5001에서 시작됩니다.Postman을 열고 다음 매개변수를 사용하여 요청을 생성합니다.
화기 재료
Google Firebase 콘솔에서 Firebase 항목을 엽니다.
🧐메모🧐: 항목의 URL은 "https://console.firebase.google.com/u/0/xxxxxxx"과 비슷해야 합니다.
웹 응용 프로그램 만들기
프로젝트 개요 옆에 있는 작은 톱니바퀴를 클릭하여 프로젝트 설정을 선택합니다.일반 탭에서 아래로 스크롤하고 다음 그림의 아이콘을 클릭합니다.
의미 있는 이름을 주고 "auth series app"과Firebase proj "auth series"를 구별하고 "등록 app"를 눌렀습니다.그런 다음 콘솔 계속을 선택합니다.
서비스 계정 키 만들기
Firebase Admin SDK를 통해 웹api 코드 라이브러리에서Firebase 프로젝트를 프로그래밍 방식으로 관리하기 위해서, Firebase 범위 내에서 웹api를 표시하는 비밀 키를 생성해야 합니다.
서비스 계정, Firebase 관리 Sdk로 이동하고 서비스 계정 만들기를 클릭합니다.
다음 창이 나타납니다.
[키 생성]을 클릭하면 JSON 파일이 컴퓨터에 다운로드됩니다.이 서류를 손 옆에 두어라. 왜냐하면 우리는 곧 쓸 것이다.
Firebase 및 웹 Api 연결⛓
이제 이 점들을 연결합시다!Firebase와 웹api 프로젝트 사이에 다리를 놓아야 합니다.
Firebase 등록
cd AuthSeries
과 mkdir Firebase
로 디렉터리를 변경합니다. (없으면)위에서 다운로드한 JSON 파일을 이 폴더에 복사합니다.CLI에서 다음 명령을 실행하여 NuGet 패키지를 추가합니다.dotnet add package FirebaseAdmin
파일 시작을 엽니다.cs, 그리고 다른 using 문장 아래에 이것을 추가합니다 using FirebaseAdmin;
.마지막으로 다음 코드를 시작하는 Configure Services() 방법에 추가합니다.cs 클래스 파일:
FirebaseApp.Create(new AppOptions
{
Credential = GoogleCredential.FromFile(@"C:\Projects\SampleProjects\auth-series\auth-series\AuthSeries\Firebase\auth-series-firebase-adminsdk-rk7k4-4dc58434f2.json")
});
🔵중요했어🔵: 너는 반드시 나의 길을 너의 길로 바꿔야 한다.생산 중에 너는 이런 방식으로 정보를 억지로 인코딩해서는 안 된다.환경 변수를 사용할 수 있습니다.NET 사용자 기밀 등IOC 컨테이너에 Firebase 인증 추가
지금까지 Firebase proj는 웹api에만 등록되어 있습니다.
다음은Firebase를 인증 공급자로 사용하기를 희망하는 웹api를 알려 줍니다.
그것을 실현하기 위해서, 우리는 반드시 몇 가지 파일을 변경해야 한다.
설정을 적용합니다.json
"Jwt": {
"Firebase": {
"ValidIssuer": "https://securetoken.google.com/auth-series",
"ValidAudience": "auth-series"
}
}
⚠️경고⚠️: "auth series"를 Firebase 프로젝트에 선택한 프로젝트 id로 바꿔야 합니다. (Firebase 컨트롤러의 "프로젝트 설정 > 일반"에서 찾을 수 있습니다.창업하다.대테러 엘리트
이 파일을 편집하기 전에 두 개의 NuGet 패키지를 설치해야 합니다.터미널에서 다음 두 명령을 실행합니다.
dotnet add package Microsoft.AspNetCore.Authentication
dotnet add package Microsoft.AspNetCore.Authentication.JwtBearer
using Microsoft.IdentityModel.Tokens;
using Microsoft.AspNetCore.Authentication.JwtBearer;
구성 서비스 방법
Firebase 응용 프로그램 등록(위에 추가된 코드)에 다음 코드를 배치하여 Google Firebase에서 제공하는 JWT 토큰에 매개 변수를 설정합니다.
// firebase auth
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(opt =>
{
opt.Authority = Configuration["Jwt:Firebase:ValidIssuer"];
opt.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = true,
ValidateAudience = true,
ValidateLifetime = true,
ValidateIssuerSigningKey = true,
ValidIssuer = Configuration["Jwt:Firebase:ValidIssuer"],
ValidAudience = Configuration["Jwt:Firebase:ValidAudience"]
};
});
🔎암시하다🔎: 코드 형식을 더욱 안전하게 하기 위해서, 옵션 모드를 사용하고, 설정을 POCO 클래스에 연결하는 것을 고려해야 합니다.그 밖에 너는 이 민감한 데이터를 더욱 안전한 곳에 두어야 한다.구성 방법
다음 변경 사항을 통해, 중간부품의 파이프에 인증 중간부품을 추가합니다.
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
일기 예보원.대테러 엘리트
마지막으로 변경할 것은 보호될 단점입니다.파일 상단에 추가
using Microsoft.AspNetCore.Authorization;
.Get 방법add
[Authorize]
의 서명입니다. 이 동작의 접근 권한을 인증을 받은 사용자에게만 한정합니다.학기말 고사
이제 우리 일을 시험해 봅시다.우리가 옳다는 것을 증명하기 위해서는 두 가지 요청이 필요합니다. 하나는 Firebase에 로그인한 사용자이고, 다른 하나는 우리의 단점을 조회하는 것입니다.
Firebase 요청
요청을 만들기 전에 Firebase 프로젝트에서 웹 API 키를 가져와야 합니다.이전과 마찬가지로 [프로젝트 설정 > 일반]을 탐색하고 다음과 같이 웹 API 키를 복사해야 합니다.
postman에서 다음 매개 변수를 사용하여 요청을 생성합니다.
본문:
{
"email": "[email protected]",
"password": "password",
"returnSecureToken": true
}
일기예보 요청
요약
축하합니다.🏆! 너는 이 시리즈의 첫 부분을 성공적으로 완성했다.지금 너는 제한할 수 있다🔐 인증된 사용자만 자원에 접근할 수 있습니다.또한 Google Firebase를 인증 공급자로 웹api에 통합하는 간단한 몇 가지 절차도 있습니다.
다음🐱🏍
다음 블로그에서, 우리는Firebase를 사용하지 않고 웹api에서 JWT 영패를 직접 생성할 것이다.JWT 토큰을 게시하여 엔드포인트를 만들어 사용자에 로그인합니다.
만약 이것이 당신을 흥분하게 한다면 놓치지 마세요.
나는 네가 이 문장을 좋아하고, 또한 그것이 유용하다고 생각하기를 바란다.만약 당신에게 어떤 문제가 있거나, 혹은 당신이 나의 잘못을 발견하고 싶다면, 나는 정말 고맙습니다. 나는 최선을 다해 따라갈 것입니다.만약 당신이 그것을 좋아하고 나를 지지하고 싶다면, 나에게 칭찬을 해주고 당신이 가장 좋아하는 사교 활동을 공유하는 것을 고려해 보세요.만약 네가 원한다면, 너는 나를 너의 사교계에 가입시킬 수 있다. 이것은 나를 매우 기쁘게 한다.
안녕히 계세요.😎
Reference
이 문제에 관하여(Firebase 인증깨끗하다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ivan_pesenti/firebase-authentication-net-5-29oi텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)