1
私は各顧客が独自のサービスを持つことができるループバックアプリケーションを持っています。したがって、私は顧客が自分のサービスだけを見て、追加し、編集し、削除することができるようにする必要があります。しかし、私が何をしていても、顧客はすべてのユーザーからすべてのサービスを見ることも、誰も誰のサービスも見ることができないように見えることがあります。
サービスモデル
"relations": {
"customer": {
"type": "belongsTo",
"model": "customer",
"foreignKey": "customerId"
}
}
そして、私はそれを見てきたようにALC:
"acls": [
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "DENY"
},
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$owner",
"permission": "ALLOW"
}
]
しかし、それは、このサービスの所有者のみ/ GET/{ID}それのサービスのようなものだ場合にしかし、それは/すべてのサービスを得ることができませんか?
私が使用している場合は、この:
"acls": [
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "DENY"
},
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$authenticated",
"permission": "ALLOW"
}
]
私は私が必要なものを持っているが、これは各顧客が他のすべての顧客からのすべてのサービスを取得することができますので、市長のセキュリティリークです。あなたのservice
モデルと$owner
ACL内のプロパティcustomerId
を追加する必要が
私は/ {id}(/:id)のGETで覆われていると書いています。しかし、私がidを使って単一のサービスを望んでいないのはどうでしょうか?その$ ownerのサービスはどれですか? – Arcagully
@Arcagully私が私の答えで述べたように、あなたは 'customerId'プロパティが必要です。また、idセグメントを無視してすべてのサービスをカバーしたい場合は、カスタムロールリゾルバを作成する方法です –