我正在为一个有角度的项目使用keycloak,我创建了两个领域角色(管理员和成员),客户端和两个用户(Irma和Sheldon)。
我是初学者,
我想允许一个用户(Irma)访问客户端,并拒绝其他用户(Sheldon)访问。
答案 0 :(得分:0)
我可以建议您使用有角的一面,使用一个库来进行授权,例如:https://github.com/mauriciovigolo/keycloak-angular。一旦完成设置并配置了authGuard,这只是通过路由器对象中的角色参数保护URL的一种情况。
例如(取自https://angular.io/guide/router#milestone-5-route-guards,并添加到密钥斗篷角色位中):
import { AuthGuard } from '../auth/auth.guard';
const adminRoutes: Routes = [
{
path: 'admin',
component: AdminComponent,
data: {
roles: ['admin'],
},
canActivate: [AuthGuard],
children: [
{
path: '',
children: [
{ path: 'crises', component: ManageCrisesComponent },
{ path: 'heroes', component: ManageHeroesComponent },
{ path: '', component: AdminDashboardComponent }
],
}
]
}
];
@NgModule({
imports: [
RouterModule.forChild(adminRoutes)
],
exports: [
RouterModule
]
})
export class AdminRoutingModule {}
最后一个难题是在密钥斗篷服务器端,您必须转到用户Irma,并为她分配“管理员”角色。这样一来,她就可以通过上面的路由器使用“管理员”角色访问您保护的所有路径。
希望这会有所帮助。